策略

二分法的适用条件:
时间复杂度是 O(logn)

时间复杂度是O(n!)的是:全排列

**时间复杂度是O(2^n):**和组合有关系,和01串的组合类似,在每个位置,选左边是0,选右边是1。一定会走到第n层才会结束,每层都是向左走,向右走,所以是有两种选择

计算递归的时间复杂度:

方法1: 树状图,看有多少个点,每个点被调用多少次,每个点上面的处理的时间复杂度: 有多少个点 * 每个点被看的次数 * 每个点被处理的次数

方法2:本质上是做什么,本质上是把所有路径找一遍,还是hash表这样每个位置记一次

搜索和枚举的区别
搜索不能通过for循环一个个列出所有方案,而是需要通过递归

递归有两种实现方式:
分治法 、 遍历(?)

动态规划的两种实现方法:
多重循环 记忆化搜索

动态规划的多重循环也有两种实现方法:
自底向上的实现方法,自顶向下的实现方法
在这里插入图片描述
LCA = longest Common Ancestor 最长公共祖先
LIS = longest Increasing Subsequence 最长上升子序列
LCS = longest Common Subsequence 最长公共子序列

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值