G***n 发帖数: 877 | 1 总是有Output Limit Exceeded的error怎么回事?
class Solution {
public:
vector > threeSum(vector &num) {
vector> list;
if (num.size() <= 2) return list;
sort(num.begin(), num.end());
for (int i = 0; i
{
int j = i+1, k=num.size()-1;
while (j
{
int t = num[i]+num[j]+num[k];
if (t == 0)
{
if (list.size()>0)
{
vector m = list.back();
if (m[0] == num[i] &&m[1] == num[j] &&m[2] == num[k]
)
{
j++;
k--;
continue;
}
}
list.push_back(vector{num[i],num[j],num[k]});
j++;
k--;
}
else if (t<0)
{
j++;
}
else
{
k--;
}
}
}
return list;
}
}; | f******t 发帖数: 18 | 2 因為你的輸出實際上還是無序的,妳只跟最後一個解判斷是不是相同還不夠。比如,-3
-3 0 1 2 3 其中-3 0 3這個解都會出現兩次 | G***n 发帖数: 877 | |
|