LeetCode1. 两数之和Java实现
题目内容:

双重遍历:找到两个和为目标值的元素,返回元素下标
class Solution {
public int[] twoSum(int[] nums, int target) {
for(int i=0;i<nums.length;i++){
for(int j=i+1;j<nums.length;j++){
if(nums[i]+nums[j]==target){
return new int[]{i,j};
}
}
}
return null;
}
}
更简单的哈希表查询
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
//key存放数组元素,value存放数组元素下标
//当目标元素与当前元素的差值在map中,返回当前元素下标
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(target - nums[i])) {
return new int[]{map.get(target - nums[i]), i};
}
map.put(nums[i], i);
}
return null;
}
}
浙公网安备 33010602011771号