算法 回溯求排列组合,子集问题的总结

leetcode上有许多用回溯求排列组合,子集的题目
leetcode46
leetcode47 我的思路可看这里
leetcode77 我的思路可看这里
leetcode39
leetcode40
leetcode216
leetcode78
leetcode90 我的思路可看这里

总结一下
用回溯法求这类排列组合,子集问题基本模型都是几乎一样的(看我的思路里面也有代码),只需要根据实际题目稍作变换即可

  1. 原序列含重复元素,先排序 ,增加剪枝条件判断当前值是否和前一个值相等,是并且前一个没考虑过则跳过当前值(不理解的话可看我的47题思路)
  2. 组合或子集如[1,2],[2,1]算重复的话,可传参下次序列循环的开始位置(一直往后,不会再考虑前面的元素)
  3. 组合或子集如[1,2],[2,1]不算作重复的话,每次序列循环都从0开始即可,多增加一个判断当前值是否考虑过的boolean数组即可

欢迎大家交流补充
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章