
动态规划、贪心
Jeniclala
这个作者很懒,什么都没留下…
展开
-
动态规划:最小路径和
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 思路: 新建一个额外的 dp 数组,与原矩阵大小相同。在这个矩阵中,dp(i,j) 表示从坐标 (i, j)到右下角的最小路径权值。 我们初始化右下角的 dp 值为对应的原矩阵值,然后去填整个矩阵,对于每个元素考虑移动到右边或者下面,因原创 2021-08-09 15:16:08 · 308 阅读 · 0 评论 -
动态规划:最大子序和
思路:动态规划 重点在于遍历方式:以子序列的结束节点为基准,先遍历出以某个节点为结束的所有子序列,因为每个节点都可能会是子序列的结束节点,因此要遍历下整个序列,如: 以 b 为结束点的所有子序列: [a , b] [b] 以 c 为结束点的所有子序列: [ a, b, c ] [b, c] [ c ]。 因为我们通常的惯性思维是以子序列的开头为基准,先遍历出以 a 为开头的所有子序列,再遍历出以 b 为开头的…但是动态规划为了找到不同子序列之间的递推关系,恰恰是以子序列的结束点为基准的,这点开阔了我们的..原创 2021-08-08 20:19:08 · 387 阅读 · 0 评论 -
动态规划:股票收益问题
题目一:只交易一次 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 输入:[7,1,5,3,6,4] 输出:5 (6-1=5) 解题思路 首先我们需要写出状态转换方程,那以什么为状态呢?题目要求最大利润,我们可以定义f(i)为 在第i天时股票可以获取的原创 2021-08-07 08:46:10 · 403 阅读 · 0 评论