算法—递归与DP
算法笔记——递归与动态规划
沉迷单车的追风少年
CSDN博客专家,CSDN商业化专家,官方内容合作伙伴,官方认证“人工智能领域优质创作者”,入选2023年中国开发者影响力年度榜单。
代表专栏《Diffusion Models与深度学习》、《手把手写深度学习》、《深度学习-计算机视觉》、《手把手写C++服务器》等。
展开
-
回溯算法进阶——从LeetCode题海中总结常见套路
借鉴回溯思想的递归:LeetCode17.电话号码的字母组合经典可重复回溯框架:LeetCode77.组合基本不可重复回溯模板题:LeetCode面试题08.04.幂集非典型可重复回溯:LeetCode面试题08.09.括号一步一步优化剪枝的可重复回溯:LeetCode39.组合总和套用模板不进行剪枝,超时:可重复计算用的太多,先优化accumulate部分:将求和步骤写进递归中,彻底优化accumlate设置回溯函数起始下标进行剪枝善用this指针和全局变量优化空间复杂原创 2020-05-20 22:49:23 · 963 阅读 · 0 评论 -
由经典“接雨水”问题引发的思考——从LeetCode题海中总结常见套路
leetcode面试题17.21.直方图的雨量解法一:解法二:从每个点的角度来优化算法相同的思路解决:LeetCode121.买卖股票的最佳时机原创 2020-04-01 12:16:39 · 564 阅读 · 1 评论 -
回溯算法——从LeetCode题海中总结常见套路
回溯算法简介算法框架可重复回溯算法框架 不可重复回溯算法框架不可重复回溯开胃菜:LeetCode78.子集排序+去重的不可重复回溯:LeetCode90.子集II可重复回溯中选择"不可重复":LeetCode46.全排列可重复回溯中选择"不可重复":LeetCode面试题08.07.无重复字符串的排列组合去重有点麻烦的:LeetCode47.全排列II隐藏的回溯:LeetCode22.括号生成原创 2020-04-24 21:55:17 · 787 阅读 · 2 评论 -
LeetCode经典——70.爬楼梯&&509.斐波拉契数列
看到题目思绪一下子回到一年前,刚刚准备放弃硬件搞软件看翁凯的MOOC,会写的第一个递归!哈哈哈时光过得真快,而我依旧这么菜!!!递归当然超时:class Solution {public: int climbStairs(int n) { if(n==0||n==1) return 1; return cl...原创 2020-04-14 09:25:33 · 313 阅读 · 0 评论 -
经典DP问题总结(2)——矩阵链乘法、0-1背包问题、最长递增子序列、最大正方形
目录1.矩阵链乘法2.0-1背包问题3.最长递增子序列参考经典DP问题总结(1)——硬币问题、最长公共子序列、斐波拉契数列、整除子序列问题:https://blog.csdn.net/qq_41895747/article/details/1039316251.矩阵链乘法Matrix-chain MultiplicationThe goal of the matr...原创 2020-01-13 17:00:20 · 314 阅读 · 1 评论 -
经典DP问题总结(1)——硬币问题、最长公共子序列、斐波拉契数列、整除子序列问题
目录1.斐波拉契数列问题2.被3整除的子序列问题3. 硬币问题4.最长公共子序列参考:1.斐波拉契数列问题参见《从递归到DP——再看斐波拉契数列问题》https://blog.csdn.net/qq_41895747/article/details/103915415科普斐波拉契数列:斐波那契数列(Fibonacci sequence),又称黄金分割...原创 2020-01-10 22:56:02 · 437 阅读 · 0 评论 -
从递归到DP——再看斐波拉契数列问题
目录用递归解决:换用DP:注意:DP题目的特征:最优子序列重叠子序列很久之前学习的递归,解决的第一个问题就是斐波拉契数列问题:https://blog.csdn.net/qq_41895747/article/details/100173991从递归到DP解决01背包问题:https://mp.csdn.net/postedit/103898847用递归...原创 2020-01-09 20:57:14 · 226 阅读 · 0 评论 -
从递归到DP——01背包问题初探
目录问题描述:1.纯递归解决,容易溢出2.记忆化搜索法3.由记忆化搜索推导递推关系,使用动态规划法DP备注:问题描述:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。测试样例:n=4,{w,v}={(2,3),(1,2),(3,4),(2,2)},...原创 2020-01-08 22:21:19 · 210 阅读 · 0 评论 -
经典递归问题总结——斐波拉契数列、阶乘、汉诺塔、寻找数组中最大值、n阶台阶走法等
目录总结:递归问题一般思路1. 递归解决阶乘问题 输入n,输出n的阶乘2.递归解决寻找数组中最大值问题3.递归解决汉诺塔问题4.递归解决n阶台阶走法问题5.穷尽搜索6.斐波拉契数列问题总结:递归问题一般思路思考递归终止的条件 思考怎样将所求问题进行分解 (分治法) 最后一步将分步得到的结果进行合并(顺理成章的) 1. 递归解决阶乘问题 输...原创 2019-08-31 16:09:20 · 524 阅读 · 2 评论