华为OD机试- 符合要求的元组的个数
给定一个整数数组 nums、一个数字k,一个整数目标值 target,请问nums中是否存在k个元素使得其相加结果为target,请输出所有符合条件且不重复的k元组的个数
数据范围
2 <= nums.length <= 200
-10^9 < numslil < 10^9
-10^9 < target < 10^9
2<=k<=100
输入描述
第一行是nums取值: 2 7 11 15
第二行是k的取值: 2
第三行是target取值: 9
输出描述
输出第一行是符合要求的元组个数: 1补充说明: [2,7]满足,输出个数是1
示例1:
输入
-1 0 1 2 -1 -4
3
0
输出
2
说明
[-1,0,1],[-1,-1,2]满足条件
思路
1:也是一个非常经典的题目了,二数之和,三数之和,四数之和,K数之和。。。
2:两数之和、三数之和、四数之和、K数之和_LoongTech的博客-CSDN博客
3:上面这个大佬讲的很细,并且都附了原题的链接。
4:然而,本题也做了改编,题目给出的并不是正整数数组,但是核心的思路并未改变。
三数之和,选取最小的一个值,然后通过双指针找到剩余两个数。
四数之和,选取最小的两个值,然后通过双指针找到剩余两个数。
K数之和,选取最小的K-2个值,然后通过双指针找到剩余两个数。
Java 实现:https://renjie.blog.csdn.net/article/details/131339271
Python实现:https://renjie.blog.csdn.net/article/details/131349964
C++ 实现:https://renjie.blog.csdn.net/article/details/131349970
JavaScript实现:https://renjie.blog.csdn.net/article/details/131349959
C实现:https://renjie.blog.csdn.net/article/details/129190260