LongDz 的数字文墨提案

1. 两数之和

2 min

题目

1. 两数之和 简单

思路

遍历数组,用哈希表存储数值及其索引,查找 target - nums[i] 是否存在且非同一元素

复杂度

  • 时间复杂度: O(n)
  • 空间复杂度: O(n)

代码

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int>ans;
        map<int,int>mp;
        for(int i = 0;i < nums.size();i++){
            mp[nums[i]] = i;
        }
        for(int i = 0; i < nums.size();i++){
            if(mp[target - nums[i]] and mp[target - nums[i]]!=i){
                ans.push_back(i);
                ans.push_back(mp[target - nums[i]]);
                break;
            }
        }
        return ans;
    }
};