cmux 连接复用与批量运维实战:从连接池到远程执行引擎
2026/10/10 5:11:04
原题链接
这里提供两种题解,O(logn)的排序双指针法与O(n)的哈希表方法。
题目数据范围只有104,所以暴力遍历O(n2)其实也没问题。
classSolution{public:structnode{intnum;intindex;};vector<int>twoSum(vector<int>&nums,inttarget){intlen=nums.size();vector<node>data(len);for(inti=0;i<len;i++){data[i].num=nums[i];data[i].index=i;}sort(data.begin(),data.end(),[](node&a,node&b){returna.num<b.num;});intl=0,r=len-1;while(l<r){intsum=data[l].num+data[r].num;if(sum==target){return{data[l].index,data[r].index};}if(sum>target){r--;}elseif(sum<target){l++;}}return{};}};classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){intn=nums.size();unordered_map<int,int>mp;for(inti=0;i<n;i++){autoit=mp.find(target-nums[i]);if(it!=mp.end()){return{i,it->second};}mp[nums[i]]=i;}return{};}};本题数据量很小,所以还有多种方法。不过使用STL库中的哈希表相对很方便简洁,但是也需要额外注意边界情况。