class Solution {
public:
vector<vector<int> > threeSum(vector<int> &num) {
///int num0;
int numarr[100005];
int k=0;
int kk=0;
int flag=0;
int ans1[100005],ans2[100005],ans3[100005];
int ans=0;
vector<int> myans[100005];
int q=0;
vector<vector<int>> myAns;
if(num.size()==0) return myAns;
while(1)
{
///scanf("%d",&num0);
numarr[k++]=num[kk++];
if(kk==num.size()) break;
}
int sw;
for(int i=0;i<k;++i)
{
for(int j=i+1;j<k;++j)
{
if(numarr[i]>numarr[j])
{
sw=numarr[i];
numarr[i]=numarr[j];
numarr[j]=sw;
}
}
}
for(int i=0;i<k;++i)
{
for(int j=i+1;j<k;++j)
{
for(int z=j+1;z<k;++z)
{
if(numarr[i]+numarr[j]+numarr[z]==0)
{
for(int q=0;q<ans;++q)
{
int q1=0;
int q2=0;
int q3=0;
if(numarr[i]==ans1[q]) q1=1;
if(numarr[i]==ans2[q]) q2=1;
if(numarr[i]==ans3[q]) q3=1;
if(q1)
{
q2=0;
q3=0;
if(numarr[j]==ans2[q]) q2=1;
if(numarr[j]==ans3[q]) q3=1;
if(q2)
{
if(numarr[z]==ans3[q])
{
flag=1;
break;
}
}
if(q3)
{
if(numarr[z]==ans2[q])
{
flag=1;
break;
}
}
q2=0;
q3=0;
}
if(q2)
{
q3=0;
if(numarr[j]==ans1[q]) q1=1;
if(numarr[j]==ans3[q]) q3=1;
if(q1)
{
if(numarr[z]==ans3[q])
{
flag=1;
break;
}
}
if(q3)
{
if(numarr[z]==ans1[q])
{
flag=1;
break;
}
}
q3=0;
}
if(q3)
{
if(numarr[j]==ans1[q]) q1=1;
if(numarr[j]==ans2[q]) q2=1;
if(q1)
{
if(numarr[z]==ans2[q])
{
flag=1;
break;
}
}
if(q2)
{
if(numarr[z]==ans1[q])
{
flag=1;
break;
}
}
}
}
if(flag==0)
{
//cout<<numarr[i]<<" "<<numarr[j]<<" "<<numarr[z]<<endl;
myans[q].push_back(numarr[i]);
myans[q].push_back(numarr[j]);
myans[q].push_back(numarr[z]);
myAns.push_back(myans[q]);
q++;
ans1[ans]=numarr[i];
ans2[ans]=numarr[j];
ans3[ans]=numarr[z];
ans++;
}
flag=0;
}
}
}
}
return myAns;
}
};
京公网安备 11010502036488号