LeetCode-第十五题:3Sum
题目
![](https://img.haomeiwen.com/i2965532/29467af6d49d4f03.png)
题目
分析
源码
public class Solution
{
public List<List<Integer>> threeSum(int[] nums)
{
List<List<Integer>> result=new ArrayList<>();
Arrays.sort(nums);
int len=nums.length;
if(len<3)
{
return result;
}
for(int i=0;i<len-2;i++)
{
if(nums[i]>0)
{
break;
}
if(i>0 && nums[i]==nums[i-1])
{
continue;
}
int target=-nums[i];
int j=i+1;int m=len-1;
while(j<m)
{
if(nums[j]+nums[m]==target)
{
List<Integer> list=new ArrayList<>();
list.add(nums[i]);
list.add(nums[j]);
list.add(nums[m]);
result.add(list);
j++;
m--;
while (j<m && nums[j]==nums[j-1])
{
j++;
}
while (j<m && nums[m]==nums[m+1])
{
m--;
}
}
else if(nums[j]+nums[m]<target)
{
j++;
while (j<m && nums[j]==nums[j-1])
{
j++;
}
}
else
{
m--;
while (j<m && nums[m]==nums[m+1])
{
m--;
}
}
}
}
return result;
}
}
本文标题:LeetCode-第十五题:3Sum
本文链接:https://www.haomeiwen.com/subject/qddpxxtx.html
网友评论