本题主要用哈希方法去做
我们用target - nums[i]的方法去找for循环中每个在哈希map里面的值去对比 就可以减少时间复杂度
附加内容:
map.get()是获取value的值
map.put()是将(key, value)放进去
map.containsKey()是找map里面是否有你想要的key值,如果有就返回true,否则反之。
class Solution {
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int other = target - nums[i];
if(map.containsKey(other)) return new int[] {map.get(other), i};
map.put(nums[i], i);
}
return new int[0];
}
}
作者:晒晒太阳
链接:https://www.acwing.com/activity/content/code/content/3433649/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。