讨论/《中级算法》 - 三数之和/
《中级算法》 - 三数之和

超时,太痛苦了
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> a=new ArrayList<List<Integer>>();
if(nums.length==0)
return a;
Arrays.sort(nums);
int a1=nums[0]-1,a2=0,a3=0;
for(int i=0;i<nums.length-2;i++)
{
if(nums[i]>0)
break;
if(nums[i]==a1)
continue;
a1=nums[i];
a2=nums[0]-1;
for(int j=i+1;j<nums.length-1;j++)
{
if(nums[j]==a2)
continue;
a2=nums[j];
a3=nums[0]-1;
for(int k=j+1;k<nums.length;k++)
{
if(nums[k]==a3)
continue;
a3=nums[k];
if(nums[i]+nums[j]+nums[k]==0)
{
List<Integer> b=new ArrayList<Integer>();
b.add(nums[i]);
b.add(nums[j]);
b.add(nums[k]);
a.add(b);
break;

                }
            }
        }
    }
    return a;

}

}

展开全部 17 讨论