package demo;
import java.util.HashMap;
import java.util.Map;
public class TwoSum {
//方法1
public static int[] twoSum1(int[] nums, int target) {
int[] result = new int[2];
for(int i = 0; i < nums.length; i++){
for(int j = i + 1 ; j < nums.length; j++){
if(nums[i] + nums[j] == target){
result[0] = i;
result[1] = j;
}
}
}
return result;
}
//方法2
public static int[] twoSum2(int[] nums, int target){
Map<Integer, Integer> map = new HashMap<>();
int[] result = new int[2];
for(int i = 0; i < nums.length; i++){
if(map.containsKey(target - nums[i])){
result[1] = i;
result[0] = map.get(target - nums[i]);
}
map.put(nums[i], i);
}
return result;
}
public static void main(String args[]){
int[] result1 = twoSum1(new int[]{5,8,3,4,9,6}, 7);
for(int r : result1){
System.out.println(r);
}
int[] result2 = twoSum2(new int[]{5,8,3,4,9,6}, 7);
for(int r : result2){
System.out.println(r);
}
}
}
运行结果:[2, 3]