首页 > 试题广场 >

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

[编程题]不重复打印排序数组中相加和为给定值的所有三元组
  • 热度指数:12729 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定排序数组arr和整数k,不重复打印arr中所有相加和为k的严格升序的三元组
例如, arr = [-8, -4, -3, 0, 1, 1, 2, 4, 5, 8, 9], k = 10,打印结果为:
-4 5 9
-3 4 9
-3 5 8
0 1 9
0 2 8
1 4 5
其中三元组1 1 8不满足严格升序所以不打印
[要求]
时间复杂度为空间复杂度为


输入描述:
第一行有两个整数n, k
接下来一行有n个整数表示数组内的元素


输出描述:
输出若干行,每行三个整数表示答案
按三元组从小到大的顺序输出(三元组大小比较方式为每个依次比较三元组内每个数)
示例1

输入

10 10
-8 -4 -3 0 1 2 4 5 8 9

输出

-4 5 9
-3 4 9
-3 5 8
0 1 9
0 2 8
1 4 5
示例2

输入

11 10
-8 -4 -3 0 1 1 2 4 5 8 9

输出

-4 5 9
-3 4 9
-3 5 8
0 1 9
0 2 8
1 4 5
示例3

输入

11 10
-8 -4 -3 0 1 1 2 4 4 8 9

输出

-3 4 9
0 1 9
0 2 8

备注:
头像 青春的律动
发表于 2022-04-24 10:00:59
public class Main { public static void printUniqueTriad(int[] arr, int k) { if (arr == null || arr.length < 3) { return; } for (int i = 0; i & 展开全文
头像 gaya
发表于 2021-01-31 00:01:28
注意重复情况 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /*10 10 -8 -4 -3 0 1 2 4 5 8 9*/ public c 展开全文
头像 大桔骑士v
发表于 2020-02-27 19:28:49
现在是2020/02/27日,目前这道题标程的数据有问题,有个条件漏了,见下面 #include <bits/stdc++.h> using namespace std; int main(){ int n,k; cin >> n >> k; 展开全文
头像 哈哈~柳暗花明
发表于 2020-07-23 14:14:31
数据竟然不允许前两个数相同,要加上and l[i] != l[a]。。。 n, k = map(int, input().split()) l = list(map(int, input().split())) for i in range(n - 2): if i > 0 and l 展开全文
头像 快支棱起来的椰子很愤怒
发表于 2022-01-07 15:53:44
n, k = map(int, input().split()) arr = list(map(int, input().split())) for i in range(n - 2): if i != 0 and arr[i] == arr[i - 1]: continue 展开全文
头像 牛客475801769号
发表于 2022-04-03 18:23:35
思路:跟上一题差不多,就是多了一个参数,我们可以设前中后三个指针,最左边的指针作为外层循环,固定此数字,找符合条件的另两个,那么内层循环就跟上一题两个指针的情况一样了。注意:后两个数字不能一样,才能确保样例全通过。 #include using namespace std; int main() { 展开全文
头像 Allen2023wp
发表于 2023-06-14 11:39:54
import sys n,k = map(int,input().split()) arr = list(map(int,input().split())) for i in range(0,n): if i > 0 and arr[i] == arr[i-1]: c 展开全文
头像 罗毅lala
发表于 2020-03-11 22:21:35
#include<vector> #include<iostream> using namespace std; void printRest(vector<int>& v,int f,int  展开全文
头像 无语的花生米复盘中
发表于 2022-03-06 10:29:45
//反正用fmt.Scan就不追求什么速度了 package Chenxuyuandaimamianshi_ACM_mode_ import ( "fmt" "sort" ) func main() { var ( N, K, n int ) fmt.Scanln(&N, 展开全文