LeetCode: Subsets 有个 C++ 解法很奇怪地超爆内存……求解

2014-10-28 20:40:35 +08:00
 jakwings
https://oj.leetcode.com/problems/subsets/

https://gist.github.com/jakwings/00e4eb11d16a158d14d0
改用注释里的 size() 就出问题了。
1057 次点击
所在节点    C
6 条回复
casparchen
2014-10-28 20:54:18 +08:00
你的 size 不是一直在变么
jakwings
2014-10-28 21:02:30 +08:00
@casparchen OK,结了。平时用 size() 用得太爽都忘了自己在改变数组……
pezy
2014-10-28 21:02:41 +08:00
我晕, 你犯了 C++ 的大忌啊, 迭代 vector 的时候怎么能同时修改 vecter 呢?
jakwings
2014-10-28 22:55:33 +08:00
@pezy T_T 为了培养 OO 思想,加上对编译器优化的信任,爽过头了……我用 JS 时都是自行缓存数组长度的。不过你说的也是,假如我是把元素塞到头部就更惨了……
staticor
2014-10-29 13:05:46 +08:00
一看这种简单的方法就觉得很长姿势。
```
def subset(S):
R = [[]]
for s in sorted(S):
R += [ r + [s] for r in R]
return R
```
jakwings
2014-10-29 14:46:30 +08:00
@staticor Python 就是这样的嘛,而且时限应该会放宽一些……正在一边练算法一边熟悉 C++。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/142194

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX