思路:用一个map存放 已遍历过的元素和下标;
若当前元素是nums[i], 且该元素的另一半 target-nums[i] 在已遍历过的map里面,则返回两个元素的下标;
class Solution {public int[] twoSum(int[] nums, int target) {int[] ans = new int[2]; //存放已经遍历过的元素和下标HashMap<Integer,Integer> map = new HashMap();//这里不能先填充完一整个数组到map里面,再去做判断for(int i=0;i<nums.length;i++){ int temp = target-nums[i];if(map.containsKey(temp)){ans[0]=i;ans[1]=map.get(temp);return ans;}//存放已经遍历过的元素和下标,作为基本被拿去判断的时候用map.put(nums[i],i);}return null;}
}