计算a+b+c=0

Posted zyf-yxm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算a+b+c=0相关的知识,希望对你有一定的参考价值。

public static List<List<Integer>> threeSum(int[] nums) {
        List<List<Integer>> results = new ArrayList<>();
        
        if (nums == null || nums.length < 3) {
            return results;
        }
        
        Arrays.sort(nums);

        for (int i = 0; i < nums.length - 2; i++) {
            // skip duplicate triples with the same first numebr
            if (i > 0 && nums[i] == nums[i - 1]) {
                continue;
            }

            int left = i , right = nums.length - 1;
            int target = -nums[i];
            
            twoSum(nums, left, right, target, results);
        }
        
        return results;
    }
    
    public static void twoSum(int[] nums,
                       int left,
                       int right,
                       int target,
                       List<List<Integer>> results) {
        while (left < right) {
            if (nums[left] + nums[right] == target) {
                ArrayList<Integer> triple = new ArrayList<>();
                triple.add(-target);
                triple.add(nums[left]);
                triple.add(nums[right]);
                results.add(triple);
                
                left++;
                right--;
                // skip duplicate pairs with the same left
                while (left < right && nums[left] == nums[left - 1]) {
                    left++;
                }
                // skip duplicate pairs with the same right
                while (left < right && nums[right] == nums[right + 1]) {
                    right--;
                }
            } else if (nums[left] + nums[right] < target) {
                left++;
            } else {
                right--;
            }
        }
    }
    
    @Test
    public void testsum(){
        int [] nums={1,1,0,4,2,3,-5,-2};
        List<List<Integer>> threeSum = threeSum(nums);
        System.out.println(threeSum);
    }

 

以上是关于计算a+b+c=0的主要内容,如果未能解决你的问题,请参考以下文章

熊猫内条件语句的计算

SQL Select 语句的用法

[linux][c/c++]代码片段01

编写一个程序, 将 a.txt 文件中的单词与 b.txt 文件中的 单词交替合并到 c.txt 文件中, a.txt 文件中的单词用回车符 分隔, b.txt 文件中用回车或空格进行分隔。(代码片段

C语言如何计算c = a+++b?

c语言 计算三角形的面积 简单代码