vector<vector<int>> threeSum(vector<int>& nums) {
sort(nums.begin(),nums.end());
vector<vector<int>> array;
int a=0,b=0,c=0;
if(nums.size()<3)
return array;
int lastc=10*10*10*10*10+1;
int lastb=10*10*10*10*10+1;
int lasta=10*10*10*10*10+1;
for(int i=0;i<nums.size();i++)
{
if(lasta==nums[i])
{
continue;
}
lasta=nums[i];
a=nums[i];
for(int j=i+1;j<nums.size();j++)
{
// cout<<"nums[j]="<<nums[j]<<" j="<<j<<endl;
if(lastb==nums[j])
{
continue;
}
lastb=nums[j];
b=nums[j];
for(int k=j+1;k<nums.size();k++)
{
if(lastc==nums[k])
{
cout<<"lastc="<<lastc<<" k="<<k<<endl;
// cout<<"++"<<endl;
continue;
}
lastc=nums[k];
c=nums[k];
cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;
if((a+b+c)==0)
{
vector<int>tempvec;
tempvec.push_back(a);
tempvec.push_back(b);
tempvec.push_back(c);
bool isSame=false;
for(int m=0;m<array.size();m++)
{
if(array[m][0]==tempvec[0]&&
array[m][1]==tempvec[1]&&
array[m][2]==tempvec[2]&&tempvec[0]!=0&&
tempvec[1]!=0&&tempvec[2]!=0)
{
isSame=true;
// cout<<"same"<<endl;
}
}
if(!isSame)
{
array.push_back(tempvec);
}
}
}
lastc=10*10*10*10*10+1;
}
lastb=10*10*10*10*10+1;
}
int x=0;
return array;
}