题解 | #不重复打印排序数组中相加和为给定值的所有三元组#

不重复打印排序数组中相加和为给定值的所有三元组

http://www.nowcoder.com/practice/11b7dd7cbf064900bc664bb5fd4e2fab

public class Main {

public static void printUniqueTriad(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 sum = 10;
	int[] arr1 = { -8, -4, -3, 0, 1, 2, 4, 5, 8, 9 };
	printUniquePair(arr1, sum);



}

}

全部评论

相关推荐

🎓学历背景:双非土木硕👨‍💻意向职位:AI应用开发大佬们可以帮我看看简历吗,秋招至今0offer
秋招结束再玩瓦:今年科班都不好找哇……你可以试试交叉岗,比如制造业国企的一些开发算法,或者互联网的边缘岗,it技术支持,运维这些
我的简历长这样
点赞 评论 收藏
分享
面试拷打成m:我感觉他说的挺对的,感觉我找不到工作也要去送外卖了,至少饿不死
点赞 评论 收藏
分享
09-22 15:45
门头沟学院 Java
谁给娃offer我给...:我也遇到了,我说只要我通过面试我就去,实际上我根本就不会去😁
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务