Day34 回溯总结与难题探讨

332.重新安排行程

此题思路较为清晰,利用哈希+数组存储每个起始地所拥有的机票(即能飞的地方),然后将每个数组都按照字典序排序,最后直接贪心地回溯,就能得到字典序最前面的飞行顺序。

一刷疑惑的点:我采用的方法并非代码随想录中的defaultdict(dict)(可以直接给予未知key一个默认值的字典,此处默认值为空的列表),而是一种哈希+数组,其中哈希保存钥匙(每个起飞地存储到达地的数组的下标),数组保存到达地,即使我将其他代码调整的几乎一样,但我的方法还是存在答案错误的情况,其中最大的疑点,就是来自数组的弹出与回收。

51. N皇后

思路与随想录相同,但在判断条件以及函数设置上栽了跟头,原为了节约空间,只用了一维数组进行函数传递,但在判断条件上越写越复杂,后来看完解析才发现二维数组能进行轻松的判断,确实是钻进了牛角尖。

37. 解数独

非常有趣的一道题,解法上有思路但越发复杂,看完解析后恍然大悟,判断方式与N皇后类似。而我直接希望通过三个方式直接找到唯一存在的值,对用例要求太高了(玩笑话),随想录中对每个符合条件的值进行回溯让我大开眼界,此题值得多刷几次。

回溯总结:

当初充满随机性的回溯题目在随想录下,竟然变得有迹可循,有路可套,这个模板虽然简单,但只有多多运用,才能真正掌握,回溯难题,值得二刷

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值