1、第一种思路使用快速排序,在排序以后进行查找
2、使用Hash存储
2.1、将目标值放入map中的同时,计算当前放入的期望补集为 target-num[i];然后去map中去查找是否有补集。
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement)) {
return new int[] { map.get(complement), i };
}
map.put(nums[i], i);
}
throw new IllegalArgumentException("No two sum solution");
}