概述
剑指 Offer II 007. 数组中和为 0 的三个数
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a ,b ,c ,使得 a + b + c = 0 ?请找出所有和为 0 且 不重复 的三元组。
示例 1:
输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
示例 2:
输入:nums = []
输出:[]
示例 3:
输入:nums = [0]
输出:[]
提示:
0 <= nums.length <= 3000
-105 <= nums[i] <= 105
代码:
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> result=new LinkedList<List<Integer>>();
if (nums.length>=3)
{
Arrays.sort(nums);
int i=0;
while (i< nums.length-2)
{
twoSum(nums,i,result);
int temp=nums[i];
while (nums[i]==temp&&i<nums.length-2)
i++;
}
}
return result;
}
public void twoSum (int[] nums,int i,List<List<Integer>> result){
int j=i+1;
int k=nums.length-1;
while(j<k)
{
if (nums[i]+nums[j]+nums[k]==0)
{
result.add(Arrays.asList(nums[i],nums[j],nums[k]));
int temp=nums[j];
while (nums[j]==temp&&j<k)
j++;
}
else if (nums[i]+nums[j]+nums[k]<0)
j++;
else
k--;
}
}
}
最后
以上就是感动玉米为你收集整理的leetcode-剑指 Offer II 007. 数组中和为 0 的三个数【java】的全部内容,希望文章能够帮你解决leetcode-剑指 Offer II 007. 数组中和为 0 的三个数【java】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复