class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { map<int,int>hash; build(nums,hash); int index2=0; vector<int>result; for(int i=0;i!=nums.size();i++){ index2=target-nums[i]; if(hash.find(index2)!=hash.end()){ if(i+1<hash[index2]){ result.push_back(i+1); result.push_back(hash[index2]); return result; } } } } void build(vector<int>nums,map<int,int>&hash){ for(int i=0;i!=nums.size();i++) hash[nums[i]]=i+1; } };
用map实现hash
开始的时候比较蛋疼,它要返回位置。
于是在map里记录了位置,解决。
时间: 2024-12-18 22:12:55