返回信息流是这样,leetcode上求4sum一道题,
https://oj.leetcode.com/problems/4sum/
我使用iterator的方式超时了,然后使用数组下标的方式居然不超时,不是说iterator更安全更好吗?
或者有木有更好的方式呀?
[ema23]
//这个超时了
class Solution {
public:
vector<vector<int> > fourSum(vector<int> &num, int target){
vector<vector<int> > res;
int len = num.size();
if(len < 4)
return res;
sort(num.begin(), num.end());
for(vector<int>::const_iterator it = num.begin(); it != num.end(); it++){
if(it != num.begin() && *it == *(it-1))
continue;
for(vector<int>::const_iterator it2 = it+1; it2 != num.end(); it2++){
if(it2 != it+1 && *it2 == *(it2-1))
continue;
vector<int>::const_iterator front = it2+1;
vector<int>::const_iterator back = num.end()-1;
while(front < back){
if(front != it2+1 && *front == *(front-1)){
front++;
continue;
}
if(back != num.end()-1 && *back == *(back+1)){
back--;
continue;
}
int sum = *it + *it2 + *front + *back;
if(sum < target)
front++;
else if(sum > target)
back--;
else{
vector<int> tmp;
tmp.push_back(*it);
tmp.push_back(*it2);
tmp.push_back(*front);
tmp.push_back(*back);
res.push_back(tmp);
front++;
}
}
}
}
return res;
}
};
这是一条镜像帖。来源:北邮人论坛 / cpp / #83370同步于 2014/10/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
这里能问个iterator超时的事吗 Time Limit Exceeded
buptmuye
2014/10/16镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
iterator版本 24行
end()-1
不对
------------------
试了一下end()-1可以。。。
我怎么记得以前end()就是返回个0。。。
我一定是穿越了。。。。