2016年12月8日 星期四

[LeetCode] 47. Permutations II

轉自LeetCode

Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,
[1,1,2] have the following unique permutations:
[
  [1,1,2],
  [1,2,1],
  [2,1,1]
]
<Solution>

Permutations 的衍生題,差別在於可能會有重複的數字

最簡單的解法,還是使用 next_permutation,而且速度還很快 (30/30 test cases, 23ms, 86.19%)

code 如下

那當然也可以用 DFS 來解,只是要修改一下
  • 用 set 來濾掉重複的答案
  • 不用去 swap 同樣數值的位置
光用 set 其實就可以得到正解,不去 swap 同樣數值,是用來加速的

code 如下
c++

kotlin

沒有留言:

張貼留言