算法总结之 不重复打印排序数组中相加和胃给定值的所有三元数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法总结之 不重复打印排序数组中相加和胃给定值的所有三元数组相关的知识,希望对你有一定的参考价值。
这个问题跟上一个 大同小异,如何不重复打印呢?
首先保证选定三元数组中第一个值不重复,剩下的就跟前一个题目一样了。
package TT; public class Test69 { public static void printUniqueTired(int[] arr, int k){ if(arr==null || arr.length<3){ return; } for(int i =0; i<arr.length-2; i++){ if(i==0 || arr[i] != arr[i-1]){ printRest(arr, i, i+1, arr.length-1, k-arr[i]); } } } public static void printRest(int[] arr, int f, int l, int r, int k){ while(l<r){ if(arr[l]+arr[r]<k){ l++; }else if(arr[l]+arr[r]>k) { r--; }else{ if(l==f+1 || arr[l-1] != arr[l]){ System.out.println(arr[f]+","+arr[l]+","+arr[r]); } l++; r--; } } } public static void main(String[] args){ int[] arr = new int[10]; arr[0] = -8; arr[1] = -4; arr[2] = -3; arr[3] = 0; arr[4] = 1; arr[5] = 2; arr[6] = 4; arr[7] = 5; arr[8] = 8; arr[9] = 9; int k = 10; printUniqueTired(arr, k); } }
以上是关于算法总结之 不重复打印排序数组中相加和胃给定值的所有三元数组的主要内容,如果未能解决你的问题,请参考以下文章