Hot1001. 两数之和
Posted 王六六的IT日常
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hot1001. 两数之和相关的知识,希望对你有一定的参考价值。
简单题
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
解法:
需要一种能够快速寻找数组中是否存在目标元素。如果存在,需要找出它的索引。
使用哈希表,可以将寻找 target - nums[i] 的时间复杂度降低到从 O(N) 降低到 O(1)。
创建一个哈希表,对于每一个 nums[i],首先查询哈希表中是否存在 target - nums[i],然后将 nums[i] 插入到哈希表中,即可保证不会让 nums[i] 和自己匹配。
注意的点:
①map:
key->数组值
val->下标
②已经存在map中的下标肯定是在前面,所以j结果返回数组的时候先把map中的那个下标放在前面。
③返回null的两种写法:
return null;
return new int[0];
代码:
class Solution
public int[] twoSum(int[] nums, int target)
Map<Integer,Integer> map = new HashMap<>();
for(int i=0;i<nums.length;i++)
int temp = target - nums[i];
if(map.containsKey(temp))
return new int[]map.get(temp),i;
map.put(nums[i],i);
return new int[0];
CSDN 社区图书馆,开张营业!
深读计划,写书评领图书福利~
以上是关于Hot1001. 两数之和的主要内容,如果未能解决你的问题,请参考以下文章