1.两数之和
Posted thefatcat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.两数之和相关的知识,希望对你有一定的参考价值。
1.暴力法
1 class Solution 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) 4 vector<int>result; 5 for(int i=0;i<nums.size();i++) 6 for(int j=i+1;j<nums.size();j++) 7 if(nums[i]+nums[j]==target) 8 result.push_back(i); 9 result.push_back(j); 10 return result; 11 12 return result; 13 14 ;
2.哈希表
1 class Solution 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) 4 vector<int>result; 5 map<int,int>tmpmap; 6 for(int i=0;i<nums.size();i++) 7 tmpmap[nums[i]]=i; 8 for(int i=0;i<nums.size();i++) 9 if(tmpmap.count(target-nums[i])!=0&&tmpmap[target-nums[i]]!=i) 10 result.push_back(i); 11 result.push_back(tmpmap[target-nums[i]]); 12 break; 13 14 15 return result; 16 17 ;
注:map的count用法:返回被查找元素的个数,如果有,返回1,否则,返回0。
以上是关于1.两数之和的主要内容,如果未能解决你的问题,请参考以下文章