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 的大作中提到】
: 正好要买个苹果键盘和鼠标,从 FW 看见了这个:
: Enter Code GXTPOFES at checkout.
: Link to Computer Accessories category:
: http://www.amazon.com/b/?node=172456
【在 t****e 的大作中提到】
: 正好要买个苹果键盘和鼠标,从 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 的大作中提到】
: 基本上就是类似生成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 的大作中提到】
: 基本上就是类似生成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 的大作中提到】
: 用个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 的大作中提到】
: 用个queue
: 放到结果里,不然就把末尾追加加一,直到queue空。
相关阅读
达赖喇嘛将主持美国参议院复会的祈祷仪式(图) (转载)Re: 巴马刚跟补丁通了一个小时的话,说啥了 (转载)“你懂的、嘿嘿”不可逾越的界限一点点松动圆圆---突破尺度登时尚杂志 (转载)有s拉不出来那一句话,就打动了我要追她!普通外科医生我和你吻鳖琐男代表中本聪申纪兰:只有社会主义国家才能做到发放养老金Re: 上海的水是人喝的吗?(转载) (转载)在美国女大学生做AV女优也挣得不多嘛 (转载)UK's Porn Filter Designer Arrested For Child Porn有比这更傻逼的手机APP么 (转载)最近几天联合国安理会陷入神经病状态 (转载)我喜欢上海的水博导确实是文科生吧,现在没人否认变暖我打算献身于老邢几个笑话 -- 你从来不曾孤单学术问:阿凡达中人类远程控制阿堪忧凡达的是什么手段?