Two Sum
给一个数组和一个target, 问数组那两个数能组成这个target. 可以直接找, n^2, 也可以用一个map存targe和当前元素的差.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Solution { public int[] twoSum(int[] nums, int target) { if(nums.length < 2 || nums == null) return null; HashMap<Integer, Integer> maps = new HashMap<Integer, Integer>(); for(int i = 0 ; i < nums.length; i++) { if(maps.containsKey(target - nums[i])) return new int[]{maps.get(target-nums[i])+1, i+1}; else maps.put(nums[i],i); } return null; } } |