给定n个数{1,2,…n},从中选取任意两两不同的k个数,请编写程序输出所有的可能的选择,要求不重不漏。

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

如题,给定n个数{1,2,…n},从中选取任意两两不同的k个数,请编写程序输出所有的可能的选择,要求不重不漏。

思路主要是递归的思路,比如有10个数,求3个两两不同的3个数,那么可以化为10个数组,其中每个数组只有9个数,求3个两两不同的3个数,以此递归。



#include <iostream>
#include <vector>
using namespace std;
void GetMinDiffRange(vector<int> &aArr,int aK);
int  main(int argc,char** argv){
	vector<int> arr;
	arr.push_back(1);
	arr.push_back(3);
	arr.push_back(2);
	arr.push_back(7);
	GetMinDiffRange(arr,2);


}


void GetMinDiffRange(vector<int> &aArr,int aK){
	if (aK<0){
		return ;
	}
	if(aArr.size()<aK){
		return;
	}else if(aArr.size()==aK){
		for(int i=0;i<aArr.size();i++){
			cout<<aArr[i]<<"\t";
		}
		cout<<endl;
		return;
	}else{
		for(int i=0;i<aArr.size();i++){
			vector <int> tmpArr;
			for(int j=0;j<aArr.size();j++){
				if(i!=j){
					tmpArr.push_back(aArr[j]);
				}
			}	
			GetMinDiffRange(tmpArr,aK);
		}
		
	}

}

如果是不同的数字,可能重新生成vector,使得所有的成员数据均不相同

从N个整数选择K个数 一、问题 给定N个整数可能有负数),从中选择K个数,使得这K个数之和恰好等于一个给定整数X; 如果有多种方案,选择它们中元素平方和最大的一个。数据保证这样的方案唯一。 例如,从4个整数{2,3,3,4}中选择2个数,使它们的和为6,显然有两种方案{2,4}与{3,3},其中平方和最大的方案为{2,4}。 二、算法实现 //从n个数中选k个数使得和为x //若有多个方案选... 阅读详情

相关推荐

P38129(n个数任意选取个数的最大异或值)

题目 #include<cstdio> using namespace std; typedef long long ll; const int N=50+5,Maxbit=50; ll p[N+1]; int main(){ int n;scanf("%d",&n); for(int i=1;i<=n;++i){ ll x;scanf(...

qq_42576687的博客 857

HDOJ 3335 Divisibility

题意:给n个数,从中取最多的数使两两之间不能整除。 二分图的最大独立集,在集合中取最多的点使这些点两两之间没有边。听这个定义就应该知道怎么做了,最大独立集=n-最大匹配。 边就代表整除关系。 代码: #include #include using namespace std; #define maxn 1005 int map[maxn][maxn],match[maxn],n; __in

Peanuts_D 1001

JAVA算法:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合(JAVA)

JAVA算法:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合(JAVA) 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。、 当 n = 4 ,k = 2 时; 结果为:[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]] 算法设计 package com.bean.algorith...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 3405

设n个整数的集合{1,2,3,,,n},从中取出r个进行排序,输出排序结果一本通P247

设n个整数的集合{1,2,3,n},从中取出r个进行排序,输出排序结果 #include&lt;iostream&gt; using namespace std; int c[1001],n,r; //c[1001]保存当前排序 bool b[1010] = {0}; //是否使用过 int search(int deep);//deep 已经存储了几个数 int main() { cin...

luyi博客 2108

选数

题目描述 已知 nn个整数 x1,x2,…,xn,以及1整数k(k<n)。从n个整数中任选k个整数相加,可分别得到一系列的和。例如当n=4,k=3,n=4,k=3,4个整数分别为3,7,12,19时,可得全部的组合与它们的和为: 3+7+12=22, 3+7+19=29 7+12+19=38 3+12+19=34 现在,要求你计算出和为素数共有多少种。 例如上例,只有一种的和为素数:3+7...

如梦山河的博客 1845

问题 A: 一个简单的整数问题

问题 A: 一个简单的整数问题 时间限制:5 Sec内存限制:128 MB提交:75解决:25 [提交][状态][讨论版][命题人:quanxing][Edit] [TestData] 题目链接:http://acm.ocrosoft.com/problem.php?cid=1690&pid=0 题目描述 你有N个整数,A1,A2,...,AN。 你需要处理两种操作...

AlanJobs的博客 617

1-n,从中选择任意两两不同的k个数输出所有可能的组合,要求不重不漏

參考:http://blog.csdn.net/hyq666888/article/details/22572695 /** * 给定n个数{1,2,3,...,n},从中选择任意两两不同的k个数输出所有可能的组合 * 要求不重不漏 * * 思路: * 假如說n=9 k=5的話。 * 那最後一個輸出的數字肯定是 5 6 7 8 9 * 而且每一輪

Sum 2954

从N个数选取k个数的组合--不降原则(DFS)

从N个数选取k个数–不降原则(DFS) 原理 :不降原则(看代码前先看一下原理吧) 举个例子: 比如说在6里面随便选5个数,那么选法都是什么呢? 瞎枚举? 12345 12346 前两个还不会弄混 然后很可能就乱了 少点数可能不会乱 但是多了就不好整了 比如说在100里随便选50个数1 2 3 4 5 6 7 8 9 10 11 12… 所以我们可以运用不降原则: 保证枚举的这些数是升序排列...

lhc121386的博客 1万+

给定n个数{1,2,3,...,n},从中选择任意两两不同的k个数输出所有可能的组合

如题,给定n为5,则这n个数为{1,2,3,4,5},给定k为2, 则所有的可能组合为: {1,2}、{1,3}、{1,4}、{1,5}、{2,3}、{2,4}、{2,5}、{3,4}、{3,5}、{4,5} 而且我们经常是按照这种顺序来寻找所有的可能性,那么如何按照这个逻辑编程实现呢? 从上面的序列中,我们可以发现,相邻的两个数是有一定的关系的, 例如以1开头的组合中,第二个数字是递增

学习天地 8822

算法笔记---从N个整数选取K个数的最优方案

题目描述 给定N个整数可能有负数),从中选择K个数,使得这K个数之和恰好等于一个给定整数X;如果有多种方案,选择它们中元素平方和最大的一个。数据保证这样的方案唯一。例如,从4个整数2,3,3,4}中选择2个数,使它们的和为6,显然有两种方案{2,4}与{3,3},其中平方和最大的方案为{2,4}。 解题思路: 使用深度搜索遍历来实现,每次有两种选择: 将当前数字放入已选序列 不讲当前数字放入...

、思考致富的博客 3907

给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。

/*给定两个整数n和k,返回 1 ...n中所有可能的k个数的组合。*/ /* 示例: 输入:n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] */ vector<vector<int>>combine(intn,intk){ dfs(temp,n,k,0); returnres; } ...

m0_47575628的博客 2801

从n个数中选出k个数

从n个数中选出k个数 #include <iostream> #include <vector> #include <algorithm> using namespace std; vector<int> a; vector<int> b; void fun(int a) { cout << a << " "; ...

你听我说,在这个地方你这样做,才是对的。 2761

递归应用-n个数选取k个数

给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。 leetcode public List<List<Integer>> combine(int n, int k) { List<List<Integer>> res = new ArrayList<List<Integer>>(); if (n==k) { List<Integer>

jinjiating的专栏 974

【DFS】背包问题 | 从N个整数选择K个数

背包问题 有n件物品,每件物品的重量为w[i],价值为c[i]。现在需要选出若干件物品放入一个容量为V的背包中,使得在选入背包的物品重量和不超过容量V的前提下,让背包中物品的价格之和最大,求最大价值。(1<=n<=20) 输入数据: 5 8 3 5 1 2 2 4 5 2 1 3 //5件物品,背包容量为8 //重量分别为3 5 1 2 2 //价值分别为4 5 2 1 3...

咸鱼夏の翻身观察记录 2144

【编程之美】任意给定一个32位无符号整数n,求n的二进制表示中1个数

任意给定一个32位无符号整数n,求n的二进制表示中1个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4。这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,我今天就遇到了,当时懵了。现在想想多简单,浪费了一次机会。 1.普通法 这种方法最简单,就是通过移位+计数。首先把n于1相&,如果结果==1,说明最后一位是1,计数器+1;然后右移一位,最后一位

hllyyy的专栏【Nothing replaces hard work】 8480

洛谷P1036 n个数选取k个的所有不重可能遍历

void sumk(int *x,int k,int end,int sum,int start) //不必rerturn 因为sum作为参数在传递 /*从n个里取k个 ,k为剩余应该取的数目,sum为当前和,start取第?个数的 起始循环坐标,end为末尾坐标*/ {if(k==0){ if(isprime(sum)) m++; //选取完毕后,判断sum是否是质数 } ...

qq_44951133的博客 389

Python - 返回 1:n 中所有可能的 k 个数的组合

一.引言 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n = 4 k = 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4]] n=4 代表待组合 list = [1,2,3,4] 二.递归调用 1.方法参数 combine 为主方法,getCombine 为实际递归调用的方法,主要有5个参数: res[list] : 保存存储结果 prefix[lsit] : 保存当前前缀 n : 给定数字,代表

BITDDD小栈 3790

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

这是一个典型的组合生成问题,可以使用回溯算法来解决。回溯算法是一种通过穷举所有可能情况来找到所有解的算法。对于这个问题,我们从数字 1 开始,依次尝试将每个数字加入到当前组合中,如果当前组合的大小等于 k,则将其加入结果列表中。然后,我们通过递归调用回溯函数,不断尝试新的数字,直到找到所有可能的组合。

nalanqingcheng1314的博客 1084
上一篇: django 笔记
下一篇: 蛙跳到第N个台阶的概率,一次以p的概率跳1个台阶,(1-p)的概率跳2个台阶
new_light
博客等级 码龄14年 2粉丝 30原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值