![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
每天收获一点点
这个作者很懒,什么都没留下…
展开
-
动态规划之64. 最小路径和(Medium)
64. 最小路径和(Medium) 题目描述: 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 一句话思路: 问题可以看成是求全局最优解,即从左上角出发到右下角经过的最小路径和。 转换成局部最优解即为从左上角到当前位置的最小路径和。 代码: class Solution: def minPathSum(self, grid: List[List[int]]) -> int:原创 2021-02-10 22:28:34 · 150 阅读 · 0 评论 -
动态规划之413.等差数列(Medium)
动态规划之等差数列 413.等差数列(Medium) 题目描述: 给定一个数组,求这个数组中连续且等差的子数组一共有多少个。 A = [1, 2, 3, 4] 返回: 3, A 中有三个子等差数组: [1, 2, 3], [2, 3, 4] 以及自身 [1, 2, 3, 4]。 一句话描述: 局部最优解:从第三个元素开始,dp[i]为以当前元素i结尾的数组包含的所有等差数列个数; 初始条件:i = 2 状态方程:A[i] - A[i-1] == A[i-1] - A[i-2] 代码: clas原创 2021-02-08 23:39:00 · 249 阅读 · 0 评论 -
198.打家劫舍(Easy)
动态规划 198.House Robber(Easy) 题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 定义一个数组dp,dp[i]表示打劫到第i个屋子时,最大的物资。 如果抢劫第i个屋子,则不抢劫第i-1个屋子,当前最大的抢劫数量为dp[i-原创 2021-01-20 00:46:12 · 106 阅读 · 1 评论 -
70.爬楼梯(Easy)
动态规划 70.Climbing Stairs(Easy) 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 思路: 这是斐波那契数列的问题。因为每次可以走一步或者两步,所以第i阶可以从i-1或者i-2阶到达。即每一个台阶的到达方法和为前面两个到达方法之和。 cur为当前台阶到达方法,pre1和pre2为前面的两个台阶的到达方法, n == 1, 1,只有1种 n == 2, 1 1 或 2原创 2021-01-20 00:02:10 · 143 阅读 · 0 评论