j*y
2 楼
Given two integers n and k, return all possible combinations of k numbers
out of 1 ... n
out of 1 ... n
z*u
3 楼
att
有点事情想要问一下
有点事情想要问一下
t*e
4 楼
正好要买个苹果键盘和鼠标,从 FW 看见了这个:
Enter Code GXTPOFES at checkout.
Link to Computer Accessories category:
http://www.amazon.com/b/?node=172456
Enter Code GXTPOFES at checkout.
Link to Computer Accessories category:
http://www.amazon.com/b/?node=172456
t*o
5 楼
【 以下文字转载自 Apple 讨论区 】
发信人: roadrr (roadrr), 信区: Apple
标 题: 今天才发现
发信站: BBS 未名空间站 (Tue Dec 4 17:04:21 2012, 美东)
果版是分在“电脑网络”这个类别下的,
是不是要求版务把果版归在“文学艺术”一类,如果不行,归在“情感杂想”也不错。
来,大家各抒己见。
发信人: roadrr (roadrr), 信区: Apple
标 题: 今天才发现
发信站: BBS 未名空间站 (Tue Dec 4 17:04:21 2012, 美东)
果版是分在“电脑网络”这个类别下的,
是不是要求版务把果版归在“文学艺术”一类,如果不行,归在“情感杂想”也不错。
来,大家各抒己见。
p*2
6 楼
肯定有呀。最笨的就是先生成k=1的,然后k=2的,最后k=k的。
v*n
8 楼
赞, coupon有效期??
【在 t****e 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 正好要买个苹果键盘和鼠标,从 FW 看见了这个:
: Enter Code GXTPOFES at checkout.
: Link to Computer Accessories category:
: http://www.amazon.com/b/?node=172456
【在 t****e 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 正好要买个苹果键盘和鼠标,从 FW 看见了这个:
: Enter Code GXTPOFES at checkout.
: Link to Computer Accessories category:
: http://www.amazon.com/b/?node=172456
p*2
12 楼
怎么会有重复呢?比如n=3, k=2
k=1
1
2
3
k=2
2 1
3 1
3 2
是不是就可以了?
k=1
1
2
3
k=2
2 1
3 1
3 2
是不是就可以了?
H*7
15 楼
敌我分明,归8区
l*o
21 楼
我觉得归时事区比较好。
j*2
24 楼
用个queue >,把数先都放进取,每次取个vector出来,如果长度够k,就
放到结果里,不然就把末尾追加加一,直到queue空。
放到结果里,不然就把末尾追加加一,直到queue空。
s*a
25 楼
求医问药
i*a
29 楼
应该放Joke板,省了ZT的麻烦.
[发表自未名空间手机版 - m.mitbbs.com]
[发表自未名空间手机版 - m.mitbbs.com]
g*n
33 楼
果版应该跟彩虹版放一个板块。
x*y
34 楼
和打印电话号码的所有字母组合挺像的;只是要保证给定k位数A, 从个位到高位上每
个位置的数字大小非递减来避免重复。初始值A=11.。。。1;从低位到高位搜索, 第一
个i
, A[i+1]-A[i]>=1, A[i]++, A[0 to i-1] 回到初始值;如果不存在, A[k-1]++, A[
0 to k-2]回到初始值; 如果不存在, 而且A[k-1] =N, 则结束。这张两个loop 就行
了。
A=....
while(True){
for(i....){
update A
}
}
个位置的数字大小非递减来避免重复。初始值A=11.。。。1;从低位到高位搜索, 第一
个i
, A[i+1]-A[i]>=1, A[i]++, A[0 to i-1] 回到初始值;如果不存在, A[k-1]++, A[
0 to k-2]回到初始值; 如果不存在, 而且A[k-1] =N, 则结束。这张两个loop 就行
了。
A=....
while(True){
for(i....){
update A
}
}
r*n
36 楼
基本上就是类似生成all subsets的方法,只不过要判断一下长度是不是等于k
list comb(const string& alphabet, int k){
if( alphabet.empty() || k == 0 ) return list();
list sets(1), tmp, ret;
for(const auto& x:alphabet){
for(const auto& r:sets){
if( r.size() + 1 == k ) ret.push_back(r+x);
else tmp.push_back(r+x);
}
sets.splice(sets.end(),tmp);
}
return ret;
}
list
if( alphabet.empty() || k == 0 ) return list
list
for(const auto& x:alphabet){
for(const auto& r:sets){
if( r.size() + 1 == k ) ret.push_back(r+x);
else tmp.push_back(r+x);
}
sets.splice(sets.end(),tmp);
}
return ret;
}
d*3
37 楼
我发现你的c++代码写得好高级
【在 r*********n 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 基本上就是类似生成all subsets的方法,只不过要判断一下长度是不是等于k
: list comb(const string& alphabet, int k){
: if( alphabet.empty() || k == 0 ) return list();
: list sets(1), tmp, ret;
: for(const auto& x:alphabet){
: for(const auto& r:sets){
: if( r.size() + 1 == k ) ret.push_back(r+x);
: else tmp.push_back(r+x);
: }
: sets.splice(sets.end(),tmp);
【在 r*********n 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 基本上就是类似生成all subsets的方法,只不过要判断一下长度是不是等于k
: list
: if( alphabet.empty() || k == 0 ) return list
: list
: for(const auto& x:alphabet){
: for(const auto& r:sets){
: if( r.size() + 1 == k ) ret.push_back(r+x);
: else tmp.push_back(r+x);
: }
: sets.splice(sets.end(),tmp);
h*0
39 楼
public ArrayList> combine_iterative(int n, int k) {
ArrayList> result = new ArrayList>
();
ArrayList list;
int end = n-k+1;
for(int i=1; i<= end; i++){
list = new ArrayList();
list.add(i);
result.add(list);
}
ArrayList listTmp;
for(int i = 1; i< k; i++){
//int len = result.size();
for(int j = result.size(); j>0; j-- ){
list = result.get(0);
result.remove(0);
for(int p = list.get(list.size() - 1) + 1; p <= end + i; p++ ){
listTmp = new ArrayList();
listTmp.addAll(list);
listTmp.add(p);
result.add(listTmp);
}
}
}
return result;
}
【在 j******2 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 用个queue >,把数先都放进取,每次取个vector出来,如果长度够k,就
: 放到结果里,不然就把末尾追加加一,直到queue空。
ArrayList
();
ArrayList
int end = n-k+1;
for(int i=1; i<= end; i++){
list = new ArrayList
list.add(i);
result.add(list);
}
ArrayList
for(int i = 1; i< k; i++){
//int len = result.size();
for(int j = result.size(); j>0; j-- ){
list = result.get(0);
result.remove(0);
for(int p = list.get(list.size() - 1) + 1; p <= end + i; p++ ){
listTmp = new ArrayList
listTmp.addAll(list);
listTmp.add(p);
result.add(listTmp);
}
}
}
return result;
}
【在 j******2 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 用个queue
: 放到结果里,不然就把末尾追加加一,直到queue空。
相关阅读
Re: 屎一拱比颜美女大几岁? (转载)习主任 (转载)fuck Ni要被减刑了 (转载)为啥老中学生持枪就被定罪驱逐?操你妈川普! (转载)刚才牛掰了一把死之前还在打飞机? (转载)为庆祝中国反击美国,国内朋友组团干杯学生物的文笔好,大家有感觉没有? (转载)有个滴滴的哥们跟我说笑死了,中国足协十大奇葩事件 (转载)印度教师为升职泄露考题 数百万考生被坑套博士开创了来军板奔丧的先例 (转载)妈妈花3万给孩子补英语,补前70分补后40分 (转载)Re: 请问这个文章算抄袭吗? (转载)自欺欺人 (转载)儿子逃学,老妈一枪击中其背,当周鸿祎、李彦宏、马化腾碰到金银角大王的时候也说说起名字的笑话看看当年计算机专业学生毕业分配的工作 (转载)想给孩子起个洪荒气质的名字,搞笑段子