ProblemGiven an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example1234Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1]. Python123456789101112131415161718192021222324252627282930class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ lookup = {} for i, num in enumerate(nums): if target - num in lookup: return [lookup[target - num], i] lookup[num] = i def twoSum2(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ k = 0 for i in nums: j = target - i k += 1 tmp_nums = nums[k:] if j in tmp_nums: return [k - 1, tmp_nums.index(j) + k]if __name__ == '__main__': print Solution().twoSum((2, 7, 11, 15), 9) C++12345678910111213class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> lookup; for (int i = 0; i < nums.size(); ++i) { if (lookup.count(target - nums[i])) { return {lookup[target - nums[i]], i}; } lookup[nums[i]] = i; } return {}; }}; ← Previous Post Please enable JavaScript to view the comments powered by Disqus. Table of Contents 1. Problem2. Example3. Python4. C++