47. Permutations II
題目網址:https://leetcode.cn/problems/permutations-ii/
題意:給一含重複數的 array
nums
, 按任意順序返回所有不重複的排列。
Solution:
想法:類似 46. Permutations, 只是要排除掉相同數當頭
e.g. [1, 1, 2]
- 1 當頭 : [1, 1, 2], [1, 2, 1]
- 1 當頭 : [1, 1, 2], [1, 1, 2]
➔ 重複排列, 故要記住哪些數當過開頭, 若後面遇到做過開頭的數則不做 swap, 直接跳過
class Solution { |
- time:$O(n \cdot n!)$ ➔ 總共 $n!$ 種排列, 每一種要 $O(n)$
- space:$O(n \cdot n!)$ ➔ $O(n) + O(n \cdot n!)$
- $O(n)$:
dfs()
遞迴最大深度 - $O(n \cdot n!)$:最多 $n!$ 種排列, 每種排列的長度都為
n
- $O(n)$:
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論