![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
动态规划
文章平均质量分 63
算法-动态规划应用
谈谈1974
火萎了,我也准备走了
展开
-
算法-不同二叉搜索树总数
【代码】算法-不同二叉搜索树总数。原创 2023-01-31 18:10:07 · 483 阅读 · 0 评论 -
算法-打家劫舍
从递推公式 dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]) 可看出递推的基础就是dp[0] 和 dp[1]。此时从 dp[i] 的定义来看,dp[0] 一定是 nums[0],dp[1] 则是 nums[0] 和 nums[1] 的最大值。解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3),偷窃到的最高金额 = 1 + 3 = 4。dp[i]:表示下标 i 以内的房屋最多可以偷窃的金额。输入:[1,2,3,1]原创 2022-11-26 15:27:44 · 709 阅读 · 0 评论 -
算法-最大子数组和
文章目录1. 最大子数组和问题2. 解法1. 最大子数组和问题给定一个整数数组 nums ,找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和,leetCode 原题示例输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 62. 解法动态规划法从左往右遍历数组,使用 dp[i] 表示直到当前下标的最大数组和,则可以简单推导出当 dp[i-1] <= 0 时,之前的累加和dp[i-1原创 2022-03-06 16:35:25 · 332 阅读 · 0 评论 -
算法-递增子序列最大长度
文章目录1. 计算递增子序列最大长度2. 解法1. 计算递增子序列最大长度给定一个整数数组 nums ,找到其中最长严格递增子序列的长度,以下为示例,leetcode 链接输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列2. 解法使用动态规划的解题原创 2021-02-26 14:53:09 · 1366 阅读 · 0 评论 -
股票买卖问题完全解读
文章目录1. 典型问题2. 状态穷举3. 状态转移4. 算法总结1. 典型问题2. 状态穷举3. 状态转移4. 算法总结原创 2021-01-29 16:58:03 · 530 阅读 · 0 评论 -
算法-0/1背包问题
1. 求最大价值给定 背包的容积 W,物品的体积数组 weights 和价值数组 values, 求背包能装入物品的最大价值。例如:W=6weights = {1, 2, 3, 4};values = {2, 4, 3, 6};输出最大价值 :102. 解法动态规划法, 0-1 Knapsack.一个物品只能用一次。定义一个二维数组 dp 存储最大价值,其中 dp[i][j] ...原创 2019-09-05 14:59:26 · 604 阅读 · 0 评论 -
算法-股票买卖问题
1. 股票买卖给定股价数组,数组元素为当天股价,可进行两次买入和卖出的交易,输出最大的收益例如: 股价数组: prices = {2,2,3,4,8,2,6};可分析得知:第一次操作:买入 prices[0] = 2,卖出 prices[4] = 8,收益 6第二次操作:买入 prices[5] = 2,卖出 prices[6] = 6,收益 4收益最大为 102. 解法动态...原创 2019-09-07 14:32:33 · 1199 阅读 · 0 评论 -
算法-完全背包硬币组合问题
1. 硬币组合问题给定硬币的面值数组,已经需要找零的目标值 target,输出能满足要求的最小硬币数量。例如: coins = [1, 2, 5], amount = 12可使用 2个 面值为5 的硬币和 1个面值为2的硬币满足要求,返回 3。2. 解法完全背包问题,面值相同的硬币可以复用,使用动态规划法。三趟遍历,每趟使用一个硬币面值更新 数组dp[0]:0 dp[1]:1 dp[...原创 2019-09-08 16:32:06 · 1215 阅读 · 1 评论