12/7
建立map<值,下标>
然后遍历的时候去找有没有target-nums[i]的映射
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer>m=new HashMap<>();
m.put(nums[0],0);
for(int i=1;i< nums.length;i++){
if(m.containsKey(target-nums[i])){
return new int[] {m.get(target-nums[i]),i};
}
m.put(nums[i],i);
}
return new int[]{-1,-1};
}
}
本文介绍了一种解决两数之和问题的有效算法。通过使用哈希表存储数值及其索引,可以在O(n)的时间复杂度内找到两个数,使它们的和等于给定的目标值。该算法首先初始化一个包含第一个元素的哈希表,然后遍历数组检查目标值与当前元素之差是否已存在于哈希表中。
8万+

被折叠的 条评论
为什么被折叠?



