
回溯
AnDanXingKong
这个作者很懒,什么都没留下…
展开
-
力扣:93. 复原 IP 地址
1.先定义一个接收的集合,之后再定义一个记录小数点的变量。之后编写回溯函数,终止条件为小数点的个数为3时,同时要判断最后一段的组合的值是否属于ip地址的范围。之后再用for循环来遍历ip地址的组合,先判断组合的ip地址是否符合,符合就用substring()将小数点加入到字符串中 同时小数点的个数加一,之后用嵌套的方式来寻找下一个ip地址,结束后在回溯操作。再写一个检查ip地址值是否符合的函数。原创 2024-02-24 22:49:24 · 980 阅读 · 0 评论 -
力扣:869. 重新排序得到 2 的幂
1.先把int值转换成char数组,之后再用回溯来枚举出全部的排列顺序,在回溯排列过程中要防止同一个数据的重新使用,同时要计算排列中的数字总和,在进行判断这个数据是否是2的幂,使用递归的方式进行,判断后将判断结果加入到li2集合中最后遍历集合li2来判断全部排列的数组是否有谁的总和是符合2的幂,有返回true。原创 2024-02-21 23:06:53 · 510 阅读 · 0 评论 -
力扣:40. 组合总和 II
1.先声明好大集合和小集合,在调用回溯函数,终止条件为sum==target,要进行剪枝操作减少遍历的次数,去重操作防止数组中有两个相同的值来组成的集合相同。原创 2024-02-20 23:02:45 · 512 阅读 · 0 评论 -
力扣:51. N 皇后
2.用for循环来遍历全部的操作,用jiancha()函数检查char【row】【i】节点的同一行和同一列和同一斜线上是否用其他皇后。如果没有,在char【row】【i】放置皇后,再进行递归操作,来代替for嵌套继续遍历下去,结束操作后回溯节点。再调用回溯函数 ,终止条件为遍历的行数等于n时结束遍历,把char【】【】类型的值加入到集合li1中,再加加入过程中要将char【】【】类型转化成LIst<String>类型再把li2集合加入到li1集合中去。原创 2024-02-09 22:19:37 · 977 阅读 · 1 评论 -
力扣:47. 全排列 II
2.调用回溯函数,终止条件为li2集合的长度等于nums.length,相当于遍历到了结尾,同时要注意相同的数字造成的重复的全排列,所以要去重。在遍历过程中假如Index【i】值为0就表示没有使用该nums【i】的值,使用的nums【i】值的Index【i】值为1。之后进行递归和回溯操作来遍历全部的全排列。1.先写一个集合来接收全部的全排列,再写一个集合来接受单个的全排列。在声明一个int【】数组来用于去重用的标记nums数组中什么元素用了的标记。同时排列一下nums数组方便去除重复的全排列。原创 2024-02-07 19:15:37 · 552 阅读 · 0 评论 -
力扣:78. 子集
1.跟前面的组合题目有相同的点,主要区别在于:组合题目是遍历到符合条件的组合时加入li1集合中,子集题目是每递归一次就要把结果加入到li1集合中,并遍历但nums数组的最后。其他点和组合问题一样。原创 2024-02-06 22:05:29 · 600 阅读 · 0 评论 -
力扣:131. 分割回文串
2.写一个回溯函数,里面有终止条件和遍历全部组合的for循环来进行遍历全部的组合,终止条件为开始索引等于字符串的长度时,表示遍历完了整个字符串,li2加入到li1中去。在遍历for循环中要回溯操作,同时要检查分割段是否为回文子串,如果不是回文子串就跳过本次循环。要写一个检查回文子串的函数,其中用双指针来检查这个分割段是否是回文子串。1.先声明一个集合来接受全部的回文子串组合,在声明一个集合来接收单个回文子串的组合。原创 2024-02-05 23:20:52 · 617 阅读 · 0 评论 -
力扣:17. 电话号码的字母组合
1.先把0到9的对应的字符串用一个string类型的数组来储存起来,之后写回溯函数,组合的终止条件为s.length()==digits.length(),同时也要防止i下标超出string类型digits中的索引范围 ,之后就是找到对影数字的字符串的下标,用for循环来进行遍历组合,达到组合长度后,进行回溯操作。原创 2024-02-04 23:20:56 · 944 阅读 · 0 评论 -
力扣:216. 组合总和 III
2.写一个回溯函数,里面有终止条件和遍历全部组合的for循环来进行遍历全部的组合,终止条件为li2的集合的长度等于k时,同时li2的集合中元素的总和要等于n时,li2才能加入到li1中去。在遍历for循环中要回溯组合。1.先声明一个集合来接受全部组合等于n的组合,在声明一个单个组合的集合来接收遍历的全部的组合。原创 2024-02-04 16:45:28 · 490 阅读 · 0 评论 -
力扣:77. 组合
回溯终止条件,把单个集合中的组合加入到大集合去,同时选择下一个值进行递归组合,递归到达到组合的个数时,回溯,删除处理的点进行下一个点的组合。1.先定义一个接收全部组合的集合,在定义一个单个组合的集合,再写一个回溯方法来进行回溯,原创 2024-02-03 22:18:01 · 713 阅读 · 0 评论