剑指offer12——动态规划(中等)
剑指 Offer 42. 连续子数组的最大和
难度 简单
输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。
要求时间复杂度为O(n)。
示例1:
1 | 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] |
提示:
1 <= arr.length <= 10^5-100 <= arr[i] <= 100
注意:本题与主站 53 题相同:https://leetcode-cn.com/problems/maximum-subarray/
1 | /* |
剑指 Offer 47. 礼物的最大价值
难度 中等
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?
示例 1:
1 | 输入: |
提示:
0 < grid.length <= 2000 < grid[0].length <= 200
思路
转移方程:
dp(i,j)= \left\{ \begin{array}{**lr**} grid(i,j) & i=0;j=0;\\ grid(i,j)+dp(i,j−1) & ,i=0,j\neq0\\ grid(i,j)+dp(i−1,j) & ,i\neq0,j=0\\ grid(i,j)+max[dp(i−1,j),dp(i,j−1)] & ,i\neq0,j\neq0\\ \end{array} \right.1 | /* |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 SnowMoon-Haoyu's Blog!
评论







