1 | 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 |
1 | class Solution { |
要解决重复问题,我们只要设定一个规则,保证在填第 idx
个数的时候重复数字只会被填入一次即可。而在本题解中,我们选择对原数组排序,保证相同的数字都相邻,然后每次填入的数一定是这个数所在重复数集合中「从左往右第一个未被填过的数字」
1 | if (vis[i] || (i > 0 && nums[i] == nums[i - 1] && !vis[i - 1])) { |
1 | class Solution { |
参考文献