classSolution{ publicint[] twoSum(int[] nums, int target) { int n = nums.length; Map<Integer,Integer> map = new HashMap<>(); for(int i=0;i<n;i++) map.put(nums[i],i); for(int i=0;i<n;i++){ int res = target-nums[i]; if(map.containsKey(res) && map.get(res)!=i){ returnnewint[]{i,map.get(res)}; } } returnnewint[]{-1,-1}; } } //一次哈希 classSolution{ publicint[] twoSum(int[] nums, int target) { int n = nums.length; Map<Integer,Integer> map = new HashMap<>(); for(int i=0;i<n;i++){ int res = target-nums[i]; if(map.containsKey(res) && map.get(res)!=i){ returnnewint[]{i,map.get(res)}; } map.put(nums[i],i); } returnnewint[]{-1,-1}; } }
代码:
1 2 3 4 5 6 7 8 9 10
functwoSum(nums []int, target int) []int { var m = make(map[int]int)//value,key for i,v:=range nums{ if k,ok :=m[target-v];ok{ return []int{k,i} } m[v] = i } returnnil }