leetcode1:兩數之和
阿新 • • 發佈:2020-08-13
給定一個整數陣列 nums和一個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。
==============================Go===============================
func twoSum(nums []int, target int) []int { m := map[int]int{} for ind, num := range nums { if v, ok := m[num]; ok{return []int{ind, v} } else { m[target - num] = ind } } return nil } ------------------------ func twoSum(nums []int, target int) []int { result := []int{} m := make(map[int]int) for i, k := range nums { if value, exist := m[target - k]; exist { result= append(result, value) result = append(result, i) } m[k] = i } return result }
=================================Python============================
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: dic = {} for ind, val in enumerate(nums):if val in dic: return [dic[val], ind] else: dic[target - val] = ind
================================Java============================
class Solution { public int[] twoSum(int[] nums, int target) { HashMap<Integer, Integer> map = new HashMap<>(); int[] result = new int[2]; for (int i = 0; i < nums.length; i++){ if (map.get(nums[i]) != null) { result[0] = map.get(nums[i]); result[1] = i; }else { map.put(target - nums[i], i); } } return result; } }