Espada dedo oferta pregunta de la entrevista 57. Dos números con suma s [simple] -unordered_map, doble puntero

Mi solucion:

1. La primera idea es la primera pregunta de LeetCode, la suma de dos números, que también se usa unordered_map

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

2. Cabe señalar que esta es una matriz incremental, puede usar el puntero doble Dafa

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int i=0,j=nums.size()-1;
        vector<int> res;
        while(i<j){
            if(nums[i]+nums[j]==target){
                res.push_back(nums[i]);
                res.push_back(nums[j]);
                return res;
            }
            else if(nums[i]+nums[j]<target)    i++;
            else    j--;
        }
        return res;
    }
};

 

65 artículos originales publicados · Me gusta1 · Visitas 492

Supongo que te gusta

Origin blog.csdn.net/qq_41041762/article/details/105451431
Recomendado
Clasificación