为了数组越界的bug花费了好长时间。
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
int a, b, c;
sort(nums.begin(), nums.end());
vector<vector<int>> result;
// 枚举a
for(a=0; a<nums.size()-2; a++){
// a不要重复了
if(a>=1 && nums[a-1]==nums[a]){
continue;
}
b=a+1;
c=nums.size()-1;
while(b<c){
if(nums[b]+nums[c] == -nums[a]){
result.push_back({nums[a], nums[b], nums[c]});
}
if(nums[b]+nums[c] <= -nums[a]){
b++;
while(nums[b-1]==nums[b] && b<c){
b++;
}
}else{
c--;
while(nums[c]==nums[c+1] && b<c){
c--;
}
}
}
}
return result;
}
};