解决方案
Java 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
class Solution { public int[] twoSum(int[] nums, int target) { HashMap<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { map.put(nums[i], i); } for (int i = 0; i < nums.length; i++) { int missing = target - nums[i]; if (map.containsKey(missing)) { int j = map.get(missing); if (i != j) { return new int[]{i, j}; } } } return null; }}
Java Script 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
var twoSum = function(nums, target) { let map = new Map(); nums.forEach((num, i) => { map.set(num, i); }); let solution = []; nums.forEach((num, i) => { let missing = target - num; if (map.has(missing)) { let j = map.get(missing); if (i !== j) { solution = [i,]; } } }); return solution;};
Python 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: d = dict() for i, v in enumerate(nums): d[v] = i for i, v in enumerate(nums): missing = target - v if missing in d: j = d[missing] if j != i: return [i, j]