【力扣刷题】【51-100】
文章平均质量分 62
Darius吴贺
这个作者很懒,什么都没留下…
展开
-
【力扣刷题】【51-100】【动态规划】【递归】70. 爬楼梯
经典的斐波那契数列问题,运用动态规划的基础解法。原创 2022-06-25 20:12:47 · 199 阅读 · 1 评论 -
【力扣刷题】【51-100】【动态规划】64. 最小路径和
64. 最小路径和1.动态规划本题与62. 不同路径、63. 不同路径 II的思路十分类似,依然可以方便的用动态规划的思想解决。究其本质,是因为更靠后的状态,其最优方案,取决于更靠前的两个状态,而与未来的状态无关,抓住这个性质,我们就能很快的理清楚状态转移方程。与前两题类似,维护一个数组dp[m][n]dp[m][n]dp[m][n],代表到达位置i,j的最小路径和。本题当前状态并非上方、左方数值之和,而是左方、上方更小的一个加上当前位置的数字,状态转移方程为:dp[i][j]=min(dp原创 2022-04-21 14:56:29 · 966 阅读 · 0 评论 -
【力扣刷题】【51-100】【动态规划】63. 不同路径 II
63. 不同路径 II1.动态规划这类求方案数的问题,都有一个特点:全局的方案数,取决于子问题的方案数,就能往动态规划的方向上考虑。状态转移方式与62. 不同路径 类似,某个节点的方案数只要考虑上方与左方的方案数即可,只是这里多了一个障碍物的判断,如果某点是障碍物,那么到达此点的可行方案就是0。加上障碍物判断后,此题的规划方式和上题一样。class Solution {public: int uniquePathsWithObstacles(vector<vector<原创 2022-04-20 21:34:55 · 178 阅读 · 0 评论 -
【力扣刷题】【51-100】【动态规划】62. 不同路径
62. 不同路径1.动态规划本题容易联想到动态规划解法。我们维持一个dp[m][n]dp[m][n]dp[m][n]数组,其含义是从起点到达i,j位置有多少条最短路径。接下来我们分析一下规划过程中的状态:一个位置,只可能是从它上面、左面两个方向走来的,这一点的不同路径数就是上面一格的不同路径数+左边一格的不同路径数。即dp[i][j]=dp[i−1][j]+dp[i][j−1]dp[i][j]=dp[i-1][j]+dp[i][j-1]dp[i][j]=dp[i−1][j]+dp[i][原创 2022-04-20 20:48:01 · 239 阅读 · 0 评论 -
【力扣刷题】【51-100】【动态规划】53. 最大子数组和
53. 最大子数组和1.动态规划最大连续子数组和是最经典的动态规划入门题。思路:我们思考一种一次遍历就解决子数组和的方案。假设我们站在某个数字nums[a]的位置,并且已经知道前面一个数字nums[a-1]为结尾的最大连续数组和sum[a-1]。那么对于以nums[a]为结尾的最大子数组和只有两个可能:1.在sum[a-1]的基础上加上nums[a];2.或者从nums[a]重新开头组成最大子数组;这却决于nums[a]+sums[a-1]与nums[a]哪个更大,这就是站在原创 2022-04-19 21:55:13 · 63 阅读 · 0 评论