首页 > 代码库 > leetCode 1. Two Sum
leetCode 1. Two Sum
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { map<int,int> s; for(int i=0;i<nums.size();++i) { map<int,int>::iterator it=s.find(target-nums[i]); if(it!=s.end()) return {it->second, i}; s[nums[i]]=i; } } };
find 函数主要实现的是在容器内查找指定的元素,查找成功返回一个指向指定元素的迭代器,查找失败返回end迭代器。
在数组中查找:
int * p=find(first, end,val);//first 是容器的首迭代器,last是容器的末迭代器,val是要查找的元素。
在vector容器中查找:
vector<int> v;
for(i=1:n)
v.pushback(i);
vector<int> :: iterator iter=find(v.begin(),v.end(),num);
if(iter==v.end())//判断是否找到
在字符串中查找:
string str("abdefg");
string str2("ab");
size_t found= str.find(str2); //如果没找到返回C++中npos
size_t found=str.find_first_of(str2);//返回第一次出现的地方
size_t found=str.find(str2,1,3);//从1开始查找字符串str2的前n个字符
size_t found=str.find(str2,5);// 从下标5开始查找
size_t found=str.rfind(str2);//反向查找
leetCode 1. Two Sum
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。