1. used 用数组标记 排序
2. unordered_set 这个 set 是定义在函数中的,for循环之前,所以每次递归的时候,都是一个新的set。每一个set只管本层的事,所以不需要回溯。
unordered_set 可以用 数组来替换,使用方法是一样的,且效率更高。
3.什么都不用。 (i > startIndex && nums[i] == nums[i - 1] ) 排序
就我个人来理解, i == startIndex 的时候,都是每次递归的时候,也就是树枝上的。
而 i > startIndex ,就说明已经发送了回溯,到达了树层,从而再判断 nums[i] == nums[i - 1],这就是做到了对树层上的去重。
注意:
前面做过一道关于 递增子序列的,这里就没有进行排序(也不能进行排序,但同时也完成了去重的操作。选用的就是哈希法来进行去重的
主要原因就是 有 “递增”这个条件,保障了元素的顺序是唯一的。不会出现[6,7] [7,6]