1. 题目

2. 解答

  • C++

遍历数组,将数组中的元素和索引分别作为 unordered_map 的键和值,如果目标值和当前元素的差已经存于在map 的键中,即找到结果。

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        
        unordered_map<int, int> tabel;
        vector<int> index;
        int n = nums.size();
        for (int i = 0; i < n; i++)
        {
            int val = target - nums[i];
            
            if (tabel.count(val) == 1)
            {
                index.push_back(tabel[val]);
                index.push_back(i);
                return index;
            }
            else
            {
                tabel[nums[i]] = i;
            }
        }
    }
};
  • Python

遍历数组,将数组中的元素和索引分别作为字典的键和值,如果目标值和当前元素的差已经存于在字典的键中,即找到结果。

class Solution:
    def twoSum(self, nums, target):
        """ :type nums: List[int] :type target: int :rtype: List[int] """
        hash_table = {}       
        
        for index, value in enumerate(nums):
            
            num = target - value
            
            if num in hash_table:
                return [hash_table[num], index]
            
            hash_table[value] = index

获取更多精彩,请关注「seniusen」!