代随-组合问题

第一块:

1、组合问题:for循环中,因为组合不能重复的缘故,需要在每次递归的时候控制for循环的次数

2、组合问题2:有重复值的。

先排序,树层不能重复用、树枝可以重复用

第二块:多个集合求组合

1、电话号码的字符组合

水平方向上不再剪枝

第三块:切割问题

横向for遍历结尾点,纵向递归再回溯改变串的头

第四块:子集问题

子集问题收集所有节点的结果,组合问题只收集叶子节点(中间过程不收集)的结果

1、子集问题

2、子集问题(2):给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

本题需要去重:先对数组进行排序。横向for循环遍历时需要去重,树枝不需要去重。

第五块:递增子序列

不能重新排序,又不能出现重复。应选取某种数据结构,记录树层上已经出现过元素的值。

递增子序列,树层上不能回头,递归之下,满足集合size>1,收集结果集

第六块:排列问题

1、全排列:给定一个 没有重复 数字的序列,返回其所有可能的全排列。

没有剪枝,不同位置代表的含义不同,树层上无需剪枝,遍历所有即可。

2、全排列2:给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。

去重之前需要对元素进行排列,以免漏掉后面相同的元素。树层上进行剪枝,利用映射标记已经用过的元素,防止结果集出现重复

第七块:N皇后问题:

出于对剪枝的考虑,从上到下一行一行的放皇后,只需要判断前面的行中是否有不满足的、

皇后数量=层数,N皇后,每一个皇后可走的位置是for循环。

第八块:解决数独问题

递归函数中for循环嵌套两层

计算好每个位置属于哪个小方块就方便许多了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值