第一种方法: 暴力列举
public int[] twoSum(int[] nums, int target) {
int[] result = new int[]{0, 1};
if (nums.length == 2) { return result; }
for(int i = 0 ;i<nums.length-1;i++){
for(int j = i+1;j<nums.length;j++){
if(target == nums[i]+nums[j]){
result[0]=i;
result[1]=j;
}
}
} return result;
}
第二种方法:hash
public static int[] find(int[] nums, int target) { int[] result = new int[]{0, 1}; if (nums.length == 2) { return result; } HashMap<Integer, Integer> data = new HashMap<>(); for(int i = 0 ;i<nums.length;i++){ data.put(nums[i],i); } for(int i = 0 ;i<nums.length;i++){ if(data.get(target-nums[i])!=null){ result[0]=i; result[1]=data.get(target - nums[i]); if(result[0]!= result[1]){ break; } } } return result; }