c语言汉诺塔递归算法_四大算法

贪心算法

算法流程

  1. 建立数学模型来描述问题
  2. 把求解的问题分成若干个子问题
  3. 对每一子问题求解,得到子问题的局部最优解
  4. 把子问题的局部最优解合成原来问题的一个解五分钟了解一下什么是「贪心算法 」把子问题的局部最优解合成原来问题的一个解
五分钟了解一下什么是「贪心算法 」​www.cxyxiaowu.com
a7d83801fab1a738f0a6a8f070048728.png

动态规划

”记住你之前做过的事,记住你之前得到的答案“

找出问题之间的联系,记住答案

算法步骤

  1. 问题拆解,找到问题之间的具体联系
  2. 状态定义
  3. 递推方程推到
  4. 实现

LeetCode 第 70 号问题 爬楼梯

LeetCode 第 120 号问题:三角形最小路径和

LeetCode 第 53 号问题:最大子序和

进阶版

LeetCode 第 300 号问题:最长上升子序列

Leetcode 第 121 号问题:买卖股票的最佳时机

Leetcode 第 122 号问题:买卖股票的最佳时机II

(再进阶版)有了四步解题法模板,再也不害怕动态规划!-五分钟学算法​www.cxyxiaowu.com
b6398b9a7b8984a7e0f229128310fe83.png
有了四步解题法模板,再也不害怕动态规划!-五分钟学算法​www.cxyxiaowu.com
37e2b8ac1e45435a804a1676d6d8a0ad.png

分治算法

算法步骤

  1. 分解:将原问题分解为若干个规模较小、相互独立、与原问题形式相同的子问题。
  2. 求解:若子问题规模较小而容易被解决则直接解,否则递归的解决各个子问题。
  3. 合并:将各个子问题的解合并为原问题的解。

LeetCode 第 704 号问题:二分查找

LeetCode 第 49号问题:全排列   这道题真的是经典啊  太经典了

LeetCode 第 47 号问题:全排列 II

LeetCode 第567 号题目 : 字符串的排列

LeetCode 面试题0806 : 汉诺塔问题

递归思想:

  1. 一个问题的解可以分解为几个字问题的解
  2. 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样
  3. 存在递归终止条件,即必须有一个明确的递归结束条件,称为递归窗口

参考

程序员必须掌握哪些算法?​www.zhihu.com
d30d18ed65f5d7dba3a6959914ecee91.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值