您的位置:首页 > 其它

leetcode - 3Sum

2013-03-03 19:29 302 查看
题目描述:点击此处

#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
vector<vector<int> > threeSum(vector<int> &num) {
vector<vector<int> > result;
sort(num.begin(),num.end());
vector<int> entry;
entry.assign(3,-1000);
vector<int>::iterator i ,j ,k;
for (i=num.begin();i<num.end();i++){
if (i>num.begin() && *i==*(i-1))
continue;
j = i+1;
k = num.end()-1;
while (j<k){
int sum = *i+*j+*k;
if (sum>0)
k--;
else if (sum<0)
j++;
else {
if (*j!=entry[1]||*k!=entry[2]){
entry[0]=*i;
entry[1]=*j;
entry[2] = *k;
result.push_back(entry);
}
k--;
j++;
}
}
}
return result;
}
};


完毕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: