主题:【纪事】失败的苹果面试(上) -- landlord
共:💬133 🌺776
你这个问题其实是这样,对一个n个数的集合,求他从C(1,n)到C(n,n)的所有组合,或者说是不包括空集的所有子集,一共是2的n次方减1个。
比如三个数的集合{a,b,c},他的所有组合或者所有子集就是{a},{b},{c},{a,b},{b,c},{a,c},{a,b,c}。
然后再验证这些子集的和是否等于N,也就是
a=N?
b=N?
c=N?
a+b=N?
b+c=N?
a+c=N?
a+b+c=N?
只要能生成所有子集,求和验证很简单吧。
有些语言可能本身带的函数库就有这个功能,像C++的STL?自己写一个,我想了想好像稍微有一点麻烦,我的手也比较生了,网上找这么一个算法很容易。
- 相关回复 上下关系8
压缩 2 层
🙂握手,就是这样想的,也是按这么解决的。 隔路山贼 字0 2013-05-12 21:28:06
🙂这是属于npc的 失去的梦想 字256 2009-09-02 19:11:43
🙂dynamic programming moridin 字167 2009-09-01 10:37:29
🙂去网上找个能生成组合或叫子集的算法
🙂厉害啊 爱飞的阿尔飞 字174 2009-08-26 22:27:00
🙂那是你自己买的好,你要买中信证券,招商银行这种能挣吗。 股市就是搏傻游 字0 2009-08-27 08:09:26
🙂多谢。 隔路山贼 字0 2009-08-26 18:04:33
🙂给个思路。 iswind 字156 2009-08-26 01:15:35