去重:1.对数组进行排序,保证相同数据能放在一起
Arrays.sort(nums);
2.进行去重:当这个元素与前一个元素相等,且i>0,并且前一个元素没被使用的时候进行去重。
树层去重为什么前一个元素没被使用就可以去重:
在回溯操作中,树层上的变化一直都是前一个元素的使用变成这个元素的使用。而树枝上的变化则是前一个元素使用的同时,这个元素也使用了.
if(i>0&&nums[i]==nums[i-1]&&!isVisited[i-1]) continue;
上面代码为树层去重//这个效率更高,他会剪掉更多的分枝
if(i>0&&nums[i]==nums[i-1]&&isVisited[i-1]) continue;
上述代码为树枝去重
标签:排列,nums,元素,树枝,树层,&&,使用 From: https://www.cnblogs.com/kun1790051360/p/18073357