i*****e 发帖数: 218 | 1 求救, F家onsite算法题
到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。
这是一个组合问题的算法题。
给一个自然数集,比如:1, 2, 3, 4, ...., 100.
又任给一个自然数, n, (n是一个变量),举例来说, n = 3,
找出这个自然数集中选出n个数的全部组合, 把它们打印出来。
举例来说, n = 3, 打印出:
1, 2, 3
1, 2, 4,
1, 2, 5
2, 3, 4
2, 3, 5
97, 98, 99
98, 99, 100
我知道总的组合数是: 100!/n!
我不知道怎么把这些组合都打印出来。
(打印的顺序可以自己定, 关键是把这些所有的组合都打印出来.
他们的要求是针对任何一个n < 100, 比如 n = 49, 打印出所有的组合).
多谢大家。
(当时还问了一个问题是, 如果用python 或 javascript 怎么实现它)。 | w*******u 发帖数: 267 | 2 这个挺简单的,经典的recursion的方法,如果你连这个都不会,也别去面试FB了,没
意思。 | j*****8 发帖数: 3635 | 3 最标准的backtracking题把
去lc上随便找一道试试就可以了
【在 i*****e 的大作中提到】 : 求救, F家onsite算法题 : 到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。 : 这是一个组合问题的算法题。 : 给一个自然数集,比如:1, 2, 3, 4, ...., 100. : 又任给一个自然数, n, (n是一个变量),举例来说, n = 3, : 找出这个自然数集中选出n个数的全部组合, 把它们打印出来。 : 举例来说, n = 3, 打印出: : 1, 2, 3 : 1, 2, 4, : 1, 2, 5
| l*****a 发帖数: 14598 | 4 求组合的题你都没准备就去面试了?
【在 i*****e 的大作中提到】 : 求救, F家onsite算法题 : 到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。 : 这是一个组合问题的算法题。 : 给一个自然数集,比如:1, 2, 3, 4, ...., 100. : 又任给一个自然数, n, (n是一个变量),举例来说, n = 3, : 找出这个自然数集中选出n个数的全部组合, 把它们打印出来。 : 举例来说, n = 3, 打印出: : 1, 2, 3 : 1, 2, 4, : 1, 2, 5
| d******8 发帖数: 2191 | 5 100C3=100!/3!/97!
foreach i
print i,j,k
【在 i*****e 的大作中提到】 : 求救, F家onsite算法题 : 到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。 : 这是一个组合问题的算法题。 : 给一个自然数集,比如:1, 2, 3, 4, ...., 100. : 又任给一个自然数, n, (n是一个变量),举例来说, n = 3, : 找出这个自然数集中选出n个数的全部组合, 把它们打印出来。 : 举例来说, n = 3, 打印出: : 1, 2, 3 : 1, 2, 4, : 1, 2, 5
| w*x 发帖数: 3456 | 6 至少也要有个重复出现之类的才对得起onsite吧。。。 | i*****e 发帖数: 218 | 7 多谢。
你这里第一句 : 100C3=100!/3!/97! 是什么意思 ?
> : foreach i
这是什么语言 ?
【在 d******8 的大作中提到】 : 100C3=100!/3!/97! : foreach i: print i,j,k
| p*******n 发帖数: 2697 | | d*********e 发帖数: 352 | 9 好厉害。。怎么过的phone interview。。 | j*****n 发帖数: 53 | 10 这个答案直接毙掉。n 是变量。
【在 d******8 的大作中提到】 : 100C3=100!/3!/97! : foreach i: print i,j,k
| | | j*****n 发帖数: 53 | 11 这个答案直接毙掉。n 是变量。
【在 d******8 的大作中提到】 : 100C3=100!/3!/97! : foreach i: print i,j,k
| i*****e 发帖数: 218 | 12 多谢回复, subset 与这个答案是什么关系 ?
【在 p*******n 的大作中提到】 : lz你google下subset
| j*****8 发帖数: 3635 | | f*y 发帖数: 876 | | c*******t 发帖数: 123 | 15 楼主水平太差。
且不说你程序,你连数学都是错的。
高中数学啊!
【在 i*****e 的大作中提到】 : 求救, F家onsite算法题 : 到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。 : 这是一个组合问题的算法题。 : 给一个自然数集,比如:1, 2, 3, 4, ...., 100. : 又任给一个自然数, n, (n是一个变量),举例来说, n = 3, : 找出这个自然数集中选出n个数的全部组合, 把它们打印出来。 : 举例来说, n = 3, 打印出: : 1, 2, 3 : 1, 2, 4, : 1, 2, 5
| p*******n 发帖数: 2697 | 16 是同样类型的经典题。你backtracking都没听说过就去onsite也就算了,但做码农还是
要自己google,而不是上论坛让人debug
【在 i*****e 的大作中提到】 : 多谢回复, subset 与这个答案是什么关系 ?
| J****a 发帖数: 15 | 17 my java solution.
import java.util.ArrayList;
import java.util.List;
public class Combination {
public static List a= new ArrayList();
public static void main(String[] args){
funComb(1,10,5); //1...10, pick 5 numbers;
}
public static void funComb(int begin, int end, int level){
if(level>1){
for (int i=begin; i<=end; i++){
a.add(i);
if(level-1 >0) funComb(i+1, end, level-1);
a.remove(Integer.valueOf(i));
}//end for
}
else if(level==1){
for(int i=begin; i<=end; i++){
for(Integer n: a)
System.out.print(n+" ");
System.out.println(i);
}
}
}//end funComb
} | i*****e 发帖数: 218 | 18 求救, F家onsite算法题
到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。
这是一个组合问题的算法题。
给一个自然数集,比如:1, 2, 3, 4, ...., 100.
又任给一个自然数, n, (n是一个变量),举例来说, n = 3,
找出这个自然数集中选出n个数的全部组合, 把它们打印出来。
举例来说, n = 3, 打印出:
1, 2, 3
1, 2, 4,
1, 2, 5
2, 3, 4
2, 3, 5
97, 98, 99
98, 99, 100
我知道总的组合数是: 100!/n!
我不知道怎么把这些组合都打印出来。
(打印的顺序可以自己定, 关键是把这些所有的组合都打印出来.
他们的要求是针对任何一个n < 100, 比如 n = 49, 打印出所有的组合).
多谢大家。
(当时还问了一个问题是, 如果用python 或 javascript 怎么实现它)。 | w*******u 发帖数: 267 | 19 这个挺简单的,经典的recursion的方法,如果你连这个都不会,也别去面试FB了,没
意思。 | j*****8 发帖数: 3635 | 20 最标准的backtracking题把
去lc上随便找一道试试就可以了
【在 i*****e 的大作中提到】 : 求救, F家onsite算法题 : 到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。 : 这是一个组合问题的算法题。 : 给一个自然数集,比如:1, 2, 3, 4, ...., 100. : 又任给一个自然数, n, (n是一个变量),举例来说, n = 3, : 找出这个自然数集中选出n个数的全部组合, 把它们打印出来。 : 举例来说, n = 3, 打印出: : 1, 2, 3 : 1, 2, 4, : 1, 2, 5
| | | l*****a 发帖数: 14598 | 21 求组合的题你都没准备就去面试了?
【在 i*****e 的大作中提到】 : 求救, F家onsite算法题 : 到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。 : 这是一个组合问题的算法题。 : 给一个自然数集,比如:1, 2, 3, 4, ...., 100. : 又任给一个自然数, n, (n是一个变量),举例来说, n = 3, : 找出这个自然数集中选出n个数的全部组合, 把它们打印出来。 : 举例来说, n = 3, 打印出: : 1, 2, 3 : 1, 2, 4, : 1, 2, 5
| d******8 发帖数: 2191 | 22 100C3=100!/3!/97!
foreach i
print i,j,k
【在 i*****e 的大作中提到】 : 求救, F家onsite算法题 : 到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。 : 这是一个组合问题的算法题。 : 给一个自然数集,比如:1, 2, 3, 4, ...., 100. : 又任给一个自然数, n, (n是一个变量),举例来说, n = 3, : 找出这个自然数集中选出n个数的全部组合, 把它们打印出来。 : 举例来说, n = 3, 打印出: : 1, 2, 3 : 1, 2, 4, : 1, 2, 5
| w*x 发帖数: 3456 | 23 至少也要有个重复出现之类的才对得起onsite吧。。。 | p*******n 发帖数: 2697 | | d*********e 发帖数: 352 | 25 好厉害。。怎么过的phone interview。。 | j*****n 发帖数: 53 | 26 这个答案直接毙掉。n 是变量。
【在 d******8 的大作中提到】 : 100C3=100!/3!/97! : foreach i: print i,j,k
| j*****n 发帖数: 53 | 27 这个答案直接毙掉。n 是变量。
【在 d******8 的大作中提到】 : 100C3=100!/3!/97! : foreach i: print i,j,k
| j*****8 发帖数: 3635 | | f*y 发帖数: 876 | | c*******t 发帖数: 123 | 30 楼主水平太差。
且不说你程序,你连数学都是错的。
高中数学啊!
【在 i*****e 的大作中提到】 : 求救, F家onsite算法题 : 到F家onsite, 被问了这个题, 我不会, 请大家帮忙吧。 : 这是一个组合问题的算法题。 : 给一个自然数集,比如:1, 2, 3, 4, ...., 100. : 又任给一个自然数, n, (n是一个变量),举例来说, n = 3, : 找出这个自然数集中选出n个数的全部组合, 把它们打印出来。 : 举例来说, n = 3, 打印出: : 1, 2, 3 : 1, 2, 4, : 1, 2, 5
| | | p*******n 发帖数: 2697 | 31 是同样类型的经典题。你backtracking都没听说过就去onsite也就算了,但做码农还是
要自己google,而不是上论坛让人debug
【在 i*****e 的大作中提到】 : 多谢回复, subset 与这个答案是什么关系 ?
| J****a 发帖数: 15 | 32 my java solution.
import java.util.ArrayList;
import java.util.List;
public class Combination {
public static List a= new ArrayList();
public static void main(String[] args){
funComb(1,10,5); //1...10, pick 5 numbers;
}
public static void funComb(int begin, int end, int level){
if(level>1){
for (int i=begin; i<=end; i++){
a.add(i);
if(level-1 >0) funComb(i+1, end, level-1);
a.remove(Integer.valueOf(i));
}//end for
}
else if(level==1){
for(int i=begin; i<=end; i++){
for(Integer n: a)
System.out.print(n+" ");
System.out.println(i);
}
}
}//end funComb
} | i*****e 发帖数: 218 | 33 多谢回复, 辛苦了 !
【在 J****a 的大作中提到】 : my java solution. : import java.util.ArrayList; : import java.util.List; : public class Combination { : public static List a= new ArrayList(); : : public static void main(String[] args){ : : funComb(1,10,5); //1...10, pick 5 numbers; :
|
|