1
zzy8200 2015-10-11 17:20:27 +08:00 via iPhone
为什么不用 2^n 算法?
|
3
zzy8200 2015-10-11 23:35:30 +08:00 via iPhone 1
@luoway
for i=1 to 2^n-1 k=二进制(i) 然后用 k 给字符串做 mask ,保留 1 的位 输出 done 例: abc i=7 ( 111 ) abc 111 ->abc i=6 (110) abc 110 ->ab |
5
edfward 2015-10-12 00:45:02 +08:00 2
题:[Subsets on LeetCode]( https://leetcode.com/problems/subsets/)
解法:[Power Set - GeeksforGeeks]( http://www.geeksforgeeks.org/power-set/) |
7
ryd994 2015-10-12 04:54:46 +08:00 via Android 1
其实不用二进制也行,还是递归
你的问题主要是有重复解 ab 去掉 b 和 ac 去掉 c 都是一样的 可以反过来,递加 a b c ab ac bc abc 当考虑两个字母的解的时候,只考虑当前字母往后的。比如考虑 b 开头的解,就不需要考虑 ba ,因为 ab 肯定包含 |