链接: link
public int[] twoSum(int[] nums, int target) {
解法一:暴力解法:
int n = nums.length;
for(int i = 1; i <= n; i++)
for(int j = i-1; j >= 0; j--){
if(target == nums[i] + nums[j]){
return new int[]{i,j};
}
}
return null;
}
class Solution {
//解法二:用哈希表优化:
Map<Integer,Integer> hash = new HashMap<>();//<nums[i],i>
for(int i = 0; i < nums.length; i++){
int find = target - nums[i];
if(hash.containsKey(find)){
return new int[]{i,hash.get(find)};
}
hash.put(nums[i],i);
}
return null;
}
}