由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 求救, F家onsite算法题
相关主题
一道实用的算法题What's memory overflow?
又一个GDB的问题:关于显示数据Perl 问题 (updated)
如何将若干已升序排序好的数组合并在一起,并仍然是升序?简单问题,可我不会。:( 急用啊!
[合集] 问2个微软电话面试题目c#中,如何写1个for loop得出"aa","ab","ac",..."zz"的所有组合?
请教各路大神一个算法问题问个算法问题
HTML print an image大规模分布系统下的高效算法??
这个 perl 输出的数字为什么自动加了换行?谢谢!Entity Extraction一般是用什么算法来实现呀?
怎么可以取出网页中更新的内容 ?问个算法
相关话题的讨论汇总
话题: print话题: 打印话题: 组合话题: onsite话题: 算法
进入Programming版参与讨论
1 (共1页)
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 怎么实现它)。
n*****t
发帖数: 22014
2
递归吧,集合里循环,抽掉一个数把集合传下去,递归 n 次,到 0 了打印

【在 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******t
发帖数: 55733
3
会fold的话一个fold就干了
q*c
发帖数: 9453
4
然后面试就 fail 了。
你这是考计算能力的时候给人演示自己会用计算器呢?

【在 l******t 的大作中提到】
: 会fold的话一个fold就干了
i*******e
发帖数: 29
5
def print_combo(n):
q = []
re_print(q, 1, 100, n)
def re_print(q, h, t, n): # queue, head, tail, depth
if n == 0: # exit condition
print_array(q)
for i in range(h, t - n + 2):
re_print(q.append(i), i+1, t, n-1)
def print_array(q):
print(' '.join(q))
出来的永远是升序的排列,因此不会重复
1 (共1页)
进入Programming版参与讨论
相关主题
问个算法请教各路大神一个算法问题
面试题 -算法?HTML print an image
呵呵,问一个转专业到cs master的选课问题 (转载)这个 perl 输出的数字为什么自动加了换行?谢谢!
问个矩阵问题怎么可以取出网页中更新的内容 ?
一道实用的算法题What's memory overflow?
又一个GDB的问题:关于显示数据Perl 问题 (updated)
如何将若干已升序排序好的数组合并在一起,并仍然是升序?简单问题,可我不会。:( 急用啊!
[合集] 问2个微软电话面试题目c#中,如何写1个for loop得出"aa","ab","ac",..."zz"的所有组合?
相关话题的讨论汇总
话题: print话题: 打印话题: 组合话题: onsite话题: 算法