首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
备考首页
>
数据结构
>
数组
34
问答题
34
/
104
给定n个数(1,2,......,n),从中选取任意两两不同的k个数请编写程序输出所有的可能的选择,则要求不重不漏。
参考答案
程序思路:定义一个数组,其下标表示1到n个数,数组元素的值为1表示其下标代数的数被选中,为零则没被选中。
首先初始化,将数组前k个元素置1,表示第一个组合为前k个数。 然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为“01”组合。
同时将其左边的所有“1”全部移到数组的最左端。 当第一个“1”移动到数组的n-k的位置,即k个“1”全部移动到最右端时,就得到了最后一个组合。
纠错
收藏
查看讨论
1
...
29
30
31
32
33
34
35
36
37
38
39
...
104
跳转到
确 定
上一题
下一题
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题