47. Permutations II (i = 0, sort, used
Last updated
Was this helpful?
Last updated
Was this helpful?
因為有重複的, 所以勢必需要去掉重複, 所以會需要先排序 (去重想到排序
多用一個 used[] 來記錄是不是使用過,
nums[i] == nums[i-1] 去重複, 且 !used[i-1] (因為在剛剛 dfs 過程中被backtracking 成 false)
time: O(n!*n) .or O(n!)
space: O(n!*n) .or O(n!)
為什麼這題要特別判斷 /// if (i > 0 && nums[i] == nums[i-1] && !used[i-1] && !used[i]) {
要多這個 !used[i-1] && !used[i])
因為這個寫法不是真的要去重, 而是要確定重複的只會出現一次
所以要特別用 !used[i-1] && !used[i]) 確認沒使用過
如果是其他題目, 可能是真的要去重, 所以才會只寫 i > 0 && nums[i] == nums[i-1]
that's all!!!