Permutaions II

给定一个数组, 返回数组中所有不重复的序列

 

 

my solutions (108 -> 24ms)

一开始我的想法是, 按照 46 题的解法, 然后用 set 自动去重

但是这得到了 108 ms 的答案, 我思索了一下, 速度的瓶颈在于:

我对多个数做了同样的操作, 但最后将他们其中的大部分都抛弃了

要结局这种问题, 需要从源头入手, 在操作之前, 就将这些数据跳过

不过我暂时没有什么好的想法, 看了一下最好的答案

emmm, 他又用了标准库

本来想着这道题就这样算了, 但是突然想到, 这好像和 31 题很类似...

然后我改良了一下算法

形状和 the best solution 类似, 但是过程我自己实现了, 换成了我在 31 题中的解法

最后, 我得到了仅次于最好答案的速度

(标准库还是没办法比得过的, 我什么时候能写出标准库一样漂亮的代码呢?)

(PS: 我是不是改抽一部分时间去分析一下标准库的东西?)

 

(一开始的 236 是我未将参数以引用传递)

(后面的 32 是我将 size 换成了类变量, 但是时间增加了, 看来对于经常访问的变量, 还是局部变量好)

(PS: 我不是分析过这些东西么, 为什么会犯这种错...)