标签:leetcode
Note: Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c) The solution set must not contain duplicate triplets. For example, given array S = {-1 0 1 2 -1 -4},
A solution set is:
(-1, 0, 1)
(-1, -1, 2)
中等
vector<vector<int> > threeSum(vector<int> &num) {
vector<vector<int> > vvi;
if (num.size() < 3) return vvi;
std::sort(num.begin(), num.end(), [] (int a, int b) {return a < b;});
int f, s, t;
for (f = 0; f < num.size()-2; ++f) {
if (f > 0 && num[f] == num[f-1])
continue;
for (s = f + 1; s < num.size() - 1; ++s) {
if (s != f+1 && num[s] == num[s-1])
continue;
t = s + 1;
while (num[f]+num[s]+num[t] <= 0) {
if (num[f]+num[s]+num[t] == 0) {
vector<int> vi;
vi.push_back(num[f]);
vi.push_back(num[s]);
vi.push_back(num[t]);
vvi.push_back(vi);
break;
} else if (t < num.size() - 1) {
t++;
} else {
break;
}
}
}
}
return vvi;
}
标签:leetcode
原文地址:http://blog.csdn.net/booirror/article/details/43985321