力扣15题Java

简介: 力扣15题Java

题目

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

注意:答案中不可以包含重复的三元组。

代码

class Solution {

   public List<List<Integer>> threeSum(int[] nums) {

       int length = nums.length;

       List<List<Integer>> res = new ArrayList<List<Integer>>();

       if(length < 3){

           return res;

       }

       Arrays.sort(nums);

       for(int i = 0; i < length-2; i++){

           int a = nums[i];

           if(i > 0 && a == nums[i-1]){

               continue;

           }

           for(int j = i+1; j < length-1; j++){

               int b = nums[j];

               if(b == nums[j-1] && j-1 != i){

                   continue;

               }

               int cpl = length-1;

               int obj = -a-b;

               while(cpl != j && nums[cpl] >= obj){

                   if(nums[cpl] == obj){

                       List<Integer> list = new ArrayList<>();

                       list.add(a);

                       list.add(b);

                       list.add(nums[cpl]);

                       res.add(list);

                       break;

                   }

                   else{

                       cpl--;

                   }

               }

           }

       }

       return res;

   }

}

相关文章
|
4天前
|
算法 Java
[Java·算法·简单] LeetCode 27. 移除元素 详细解读
[Java·算法·简单] LeetCode 27. 移除元素 详细解读
27 1
|
4天前
|
算法 Java C语言
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
C++和Java中的随机函数你玩明白了吗?内附LeetCode470.rand7()爆改rand10()巨详细题解,带你打败LeetCode%99选手
|
4天前
|
算法 Java
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
25 0
|
4天前
|
算法 Java
[Java·算法·简单] LeetCode 392. 判断子序列 详细解读
[Java·算法·简单] LeetCode 392. 判断子序列 详细解读
42 0
|
4天前
|
存储 canal 算法
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
30 0
|
4天前
|
算法 Java
[Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
[Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
28 0
|
4天前
|
算法 Java
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
22 0
|
4天前
|
算法 Java 索引
[Java·算法·简单] LeetCode 141. 环形链表 详细解读
[Java·算法·简单] LeetCode 141. 环形链表 详细解读
29 0
|
4天前
|
存储 算法 Java
[Java·算法·简单] LeetCode 383. 赎金信 详细解读
[Java·算法·简单] LeetCode 383. 赎金信 详细解读
25 0
|
4天前
|
算法 Java
[Java·算法·简单] LeetCode 9. 回文数 详细解读
[Java·算法·简单] LeetCode 9. 回文数 详细解读
23 0

热门文章

最新文章