解题思路:
暴力解法:双重for循环
map标记法:循环一次即可,每个数据进入map进行标记,寻找target-x在不在即可
代码:
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class TwoSum {
public static void main(String[] args) {
System.out.println(Arrays.toString(solution(new int[]{1,2,3,4,5,6},10)));
}
//暴力解法
public static int[] solution(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 new int[0];
}
//map标记
public static int[] solution2(int[] nums, int target){
Map<Integer,Integer> map = new HashMap();
for(int i=0;i<nums.length;i++){
if(map.containsKey(target-nums[i])){
return new int[]{i,map.get(target-nums[i])};
}
map.put(nums[i],i);
}
return new int[0];
}
}