通过交换data[i]和data[i-1],可以得到序列A:...data[i-1]...data[i]...。 序列A和序列B是等价的。B序列对应的重复值的索引位置,是按照升序排列的。而if中的判定条件,就可以筛除序列A。 Reference: [1]全排列(有重复项数字和无重复数字)最后...
因为要过滤掉重复的,只有重复的数字才会造成重复的结果。所以第一步要做的就是对数组进行排序,排序之后相同的数字肯定是挨着的。 当遍历到当前数字的时候,如果数组中当前数字和前一个数字一样,并且前一个数字没有被使用,我们就跳过当前分支,也就是把当前分支给...