计算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的主要内容,如果未能解决你的问题,请参考以下文章
编写一个程序, 将 a.txt 文件中的单词与 b.txt 文件中的 单词交替合并到 c.txt 文件中, a.txt 文件中的单词用回车符 分隔, b.txt 文件中用回车或空格进行分隔。(代码片段