回溯算法part03
93.复原IP地址
题目链接/文章讲解:代码随想录
视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔哩_bilibili
本题关键在于终止条件
- 插入3个’.’时判断
ip地址最后一段是否合法:
-
- 传入参数,修改后的字符串,起始位置,终止位置(左闭又闭,传入的是每ip地址中的每一段数字,所以要注意循环遍历的条件涵盖起始位置和终止位置)
- 起始位置不能大于终止位置,放置访问越界
- 不能含有前导0
- 含有非正整数数值
- 整数值不能大于255(通过ascii码将字符转换成数字)
- 单层循环逻辑
- 需要判断地址的每一段是否符合条件,任何一段不符合结束本层递归
- 插入位置写法
- 实时更新插入‘.’的数量
- 下层递归的位置i+2
- 回溯
78.子集
题目链接/文章讲解:代码随想录
视频讲解:回溯算法解决子集问题,树上节点都是目标集和! | LeetCode:78.子集_哔哩哔哩_bilibili
终止条件:当层索引值==树的宽度结束
单层递归逻辑:将给定数组的数值加入vec,并将vec存入结果
90.子集II
题目链接/文章讲解:代码随想录