解题思路:
使用map
注意map.containsKey()
并且不能一开始就遍历加入nums中所有的值,例如:
for (int i = 0; i < nums.length; i++) {
map.put(nums[i], i);
return null;
}
这样会导致map.containsKey()重复使用同一个值
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(target - nums[i]))
return new int[] { i, map.get(target - nums[i]) };
else map.put(nums[i], i);
}
return null;
}
}
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 力扣 LeetCode 1. 两数之和(Day3:哈希表)
发表评论 取消回复