问:

/**

  • 给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。
  • 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
  • 你可以按任意顺序返回答案。
  • 示例 1:
  • 输入:nums = [2,7,11,15], target = 9
  • 输出:[0,1]
  • 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
  • 示例 2:
  • 输入:nums = [3,2,4], target = 6
  • 输出:[1,2]
  • 示例 3:
  • 输入:nums = [3,3], target = 6
  • 输出:[0,1]
    */

答:

//方式一:使用两个for循环进行遍历

public static int[]  twoSum(int[] nums,int target){int n = nums.length;for (int i = 0; i < n; ++i) {//大循环遍历的次数for (int j = i+1; j <n ; ++j) {//假设第一个是x,重新在数组中寻找target-x,依次类推第二个,第三个if(nums[i] + nums[j] == target){System.out.println("i的下标为======"+i+",======j的下标为"+j);return new int[]{i,j};}}}return new int[0];
}

//方式二 :使用哈希表

Tip:哈希表是怎么存储数据的呢?

哈希表同样是一个指针数组。
同样需要存储100个数据,需要的就不是100个单元了,因为哈希表要把某个数据存放在某个单元不是随机的一个过程,而是算出来的,这个算法叫哈希函数
比如要存储一个数据对
张三 1882356
李四 23456789
王五 58856456
张三经过哈希函数算出来的值是138,那么哈希表最少需要138个单元,因为张三对应的数据1882356要存储在指针数组的p[138]的位置上。
李四经过哈希函数算出来的值是500,那么2356789这个数据就要存放在p[500]这个位置上。

public static int[] twoSumT(int[] nums,int target){Map<Integer,Integer> map = new HashMap<>();for (int i = 0; i <nums.length; i++) {//大循环数组的length次数,依次遍历if(map.containsKey(target-nums[i])){//判断是否存在target-x的System.out.println(target-nums[i]+"=="+i);return new int[] {map.get(target-nums[i]),i};//获取存在target-x的对应下标,和目标下标}map.put(nums[i],i);//创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。System.out.println(map.toString());}return new int[]{};
}public static void main(String[] args) {int[] nums = {3,13,18,15};int target = 31;int[] ints = twoSumT(nums, target);System.out.println(Arrays.toString(ints));
}

给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。相关推荐

  1. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标

    题目链接:https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-2/ 给定一个整数数组 nums ...

  2. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使用两遍. ...

  3. JS实现 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    题目:(JS实现) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 四种方法如下: 方法一:暴力破解法,和值匹配 //暴力 ...

  4. java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    标题:java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 一.示例 二.题解 方法一,暴力法:使用双重for循环,每 ...

  5. 给定一个整数数组 nums 和一个整数目标值 target, 请你在该数组中找出和为目标值 target 的那两个整数, 并返回它们的数组下标

    题目要求: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标. [注]从前往后进行匹配, 一旦匹配成功, 便结 ...

  6. 两数之和, 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。

    两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那两个整数,并返回它们的数组下标. 可以假设每种输入只会对应一个答案.但是,数组 ...

  7. (python)给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的两个整数。

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 示例: 给定 nu ...

  8. 第1题 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标

    package com.leetcode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; i ...

  9. C++ leetCode 1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个

    一.思路: 讲数据用map存储,加快查询速度 vector<int> twoSum(vector<int>& nums, int target) {map<int ...

最新文章

  1. 在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理
  2. 在普通PC上安装XENSERVER 6.2
  3. 接近岁末,今日股市收盘大跳水
  4. LightOJ 1078 Integer Divisibility (同余定理)
  5. 还在跟面试官纠缠redis分布式锁的问题?此图让你吊打面试官
  6. 6个常用的Java开发技巧,快收藏吧!
  7. 被除数、除数、商、余数的正负号规律二
  8. 中累计直方图_新特性解读 | MySQL 8.0 直方图
  9. 电脑连接电视方法详解_笔记本连接电视有哪些设置方法
  10. Linux有关知识补充
  11. JM8.6的解码端去方块滤波代码详述
  12. HTTP请求协议格式详解
  13. 创业怎么赚信息差的钱?信息差的项目有哪些?
  14. 网站信息的采集系列(一)--基本流程
  15. 平衡小车PID,就该这么调!!!
  16. Django - 设计模式及模板层
  17. 计算机电影制作专业,影视制作专业是学什么的
  18. word文档的只有横线的表格怎样做
  19. 程序员该如何有效的找工作?
  20. 视频教程-用project做项目计划及总结报表-研发管理

热门文章

  1. iOS 应用Archiving问题
  2. 什么叫冷备用状态_什么是热备用状态?
  3. Python 练习实例100-39,有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
  4. java gef_GEF简介
  5. JavaWeb技术内幕二:Java IO工作机制
  6. Photoshop技巧:[2]如何抠头发?
  7. Ant Design Pro -- 02项目结构@20210331
  8. shader拖尾_u3d拖尾特效组件-------TrailRenderer
  9. linux系统下载18.04,在Ubuntu 18.04系统中下载安装Persepolis Download Manager
  10. 用matlab判断两个球是否相交,判断两个矩阵相交