0
点赞
收藏
分享

微信扫一扫

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。

做出来了,就是时间问题不好解决啊!!!!!
准确性是没问题!!

vector<vector<int>> threeSum(vector<int>& nums) {

vector<vector<int>> array;
int a=0,b=0,c=0;
if(nums.size()<3)
return array;

for(int i=0;i<nums.size();i++)
{
a=nums[i];

for(int j=i+1;j<nums.size();j++)
{
b=nums[j];
for(int k=j+1;k<nums.size();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);
sort(tempvec.begin(),tempvec.end());

// cout<<"a="<<a<<" b="<<b<<" c="<<c<<endl;
if(array.size()>=1)
{
sort(tempvec.begin(),tempvec.end());
// cout<<"sort="<<tempvec[0]<<" "<<tempvec[1]<<" "<<tempvec[2]<<endl;
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])
{
isSame=true;
// cout<<"same"<<endl;
}
}
if(!isSame)
{
array.push_back(tempvec);
}


}
else
{
array.push_back(tempvec);
}
}

}
}
}



return array;
}

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。_i++


举报

相关推荐

0 条评论