Day29

回溯算法part03

LC39组合总和(未掌握)

  1. 未掌握分析:被数组中的元素可以被重复选取误导,同时没有想到暴力解法来理解回溯
    • 暴力解法肯定是for循环遍历candidates中的每个元素,下一层子循环不像之前的组合题目那样从i+1开始,该题目元素可以循环使用,因此下一层子循环从i开始
  2. 错误代码:错在没有排除掉重复的情况
    在这里插入图片描述
  3. 正确代码
    在这里插入图片描述

LC40组合总和II(未掌握

  1. 未掌握分析:跳过同层元素相等的递归理解错误
    • if(i>0&& candidates[i-1]===candidates[i]) continue; 如果是i>0则下一层与本层相等的元素情况将被忽略,范围被扩大了
    • if(i>index&& candidates[i-1]==candidates[i]) continue;才是忽略掉同层相同元素的递归
    • if(indexcandidates.length || sum>target) return;应该放在sumtarget后面,因为看你indexcandidates.length && sumtarget的情况
      在这里插入图片描述
  2. 代码
    在这里插入图片描述

LC131 分割回文串(未掌握

  1. 未掌握分析:切割方式不知道如何体现在回溯算法中
    • 组合问题:选取一个a之后,在bcdef中再去选取第二个,选取b之后在cdef中再选取第三个…。
    • 切割问题:切割一个a之后,在bcdef中再去切割第二段,切割b之后在cdef中再切割第三段…。
    • 切割位置index和组合选择元素位置index是一样的
    • 然后多了个判断回文的过程,如果是回文mid才加入s
  2. 代码
    在这里插入图片描述
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值