首页 > 代码库 > 【编程】leetcode
【编程】leetcode
之前了解到leetcode是个不错的刷题站点,今天稍微尝试了一下第一题,比较简单,要排序又要通过hash表来保存相应的index。
只是在弄输出结果的时候,花了点时间。之前还一直以为判断输出结果是通过在函数中output出来的,结果是将结果作为函数的返回值返回给系统来判断。
class Solution {
public:
class mapFinder{
public:
int left;
mapFinder(int val):left(val){}
bool operator()(const multimap<int, int>::value_type &pair)
{
return (pair.first == left);
}
};
vector<int> twoSum(vector<int> &numbers, int target) {
vector<int>::iterator it;
multimap <int, int> iiMap;
multimap <int, int>::iterator iiMit1, iiMit2, iiMit3;
for (it = numbers.begin(); it != numbers.end(); it++)
{
iiMap.insert(pair<int, int>(*it, it - numbers.begin() + 1));
}
for (iiMit1 = iiMap.begin(), iiMit2 = iiMap.end(); iiMit1 != iiMap.end(); iiMit1++)
{
iiMit3 = iiMit1;
iiMit3++;
iiMit2 = find_if(iiMit3, iiMap.end(), mapFinder(target - iiMit1->first));
if (iiMit2 != iiMap.end()) /* found */
{
break;
}
}
if (iiMit2 != iiMap.end())
{
if (iiMit1->second > iiMit2->second)
{
return vector<int>({iiMit2->second, iiMit1->second});
}
else
{
return vector<int>({iiMit1->second, iiMit2->second});
}
}
}
};
【编程】leetcode
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。