今日任务:
资料来源:
回溯算法最重要的就是如何将要解决的问题映射到那颗具体的回溯的树上去,比如说今天的332和37,一旦能想明白这一点,剩下的就不难了。
回溯算法模板:
def __init__(): self.path = [] self.result = [] self.题目给定资料... def 入口函数(): self.题目给定资料赋值 back_tracking() return self.result def back_tracking(): if 终止条件: self.result.append(self.path.copy()) return for 单层递归循环 if 符合条件: self.path.append() self.back_tracking() 向下递归 self.path.pop()
回溯算法查重问题:
根据这几天的题来说,查重有两个问题:在哪里查?具体查谁?
在哪里查?
递归查重和树层查重本身是有相似性的,递归查重可以说就是树层查重另一个版本。但是为了分的清楚点还是分开讨论比较好。
具体查谁?
回溯算法参数加不加start_index?
分情况讨论。如果下一层递归的循环需要从上一层指定位置开始,就需要start_index参数;如果下一层递归的循环可以从头开始/开始位置不和上一层递归有所关联,那么就不需要start_index参数。
本文作者:御坂19327号
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!