上一页 1 2 3 4 5 6 7 ··· 31 下一页
摘要: 思路:类似于爬楼梯问题。楼梯的阶数一共为target,一次可以走的步数为nums[i]。 一共有多少种走法? 爬楼梯问题,target在外层。 也可以看成 完全背包问题,即数组中的元素可重复使用。技巧是 nums放在外循环,target在内循环。且内循环正序。 但是如果组合问题需考虑元素之间的顺序, 阅读全文
posted @ 2021-01-03 19:48 不学无墅_NKer 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 思路:类似于跳台阶(爬楼梯)问题。 爬楼梯问题的 target 在外层。 class Solution { /** * 思路; 转化为跳台阶问题 * 1. 状态的定义: dp[i] 表示到i台阶时的最小步数, 也即凑齐i需要的最少硬币数 * 2. 状态转移方程 dp[i] = min {dp[i-c 阅读全文
posted @ 2021-01-03 19:10 不学无墅_NKer 阅读(68) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆☆☆思路:转化为0-1背包问题。 即,是否可以从输入数组中挑出一些正整数,使得这些数的和 等于 整个数组和的一半。 本题与传统0-1背包问题的不同在于,传统0-1 背包问题要求 选取的物品的重量之和 不能超过 背包的容量;而本题选取的数字之和需要 恰好等于 规定的和的一半。 这一点的区别,决定 阅读全文
posted @ 2021-01-03 16:33 不学无墅_NKer 阅读(114) 评论(0) 推荐(0) 编辑
摘要: class Solution { public int maxProfit(int[] prices) { if (prices == null || prices.length == 0) return 0; int len = prices.length; int[][] dp = new in 阅读全文
posted @ 2021-01-03 10:20 不学无墅_NKer 阅读(97) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆☆思路:树形DP问题。 class Solution { /** * 1.状态的定义:dp[node][j] 表示 node是否偷取所能获得的最大价值。 * j = 0, 表示node节点不偷 ; j = 1, 表示node结点偷取 * 2.状态转移方程: * 如果当前节点偷,那么左右子节点均 阅读全文
posted @ 2021-01-02 21:03 不学无墅_NKer 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 思路:与198题的区别是,本题的房子时环形的,即首位连接。 首先,首尾房间不能同时被抢,那么只可能有三种不同情况:要么都不被抢;要么第一间房子被抢最后一间不抢;要么最后一间房子被抢第一间不抢。 但是,只需要考虑情况二和情况三,取两种情况最大的即可。 因为,在计算这两种情况时,已经把都不抢的情况考虑到 阅读全文
posted @ 2021-01-02 17:44 不学无墅_NKer 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 思路:状态的定义很重要。 状态定义1: dp[i]表示 到第 i 个房子的最大金额 class Solution { /** * dp[n]表示 到第n个房子的最大金额 * 1.如果偷第n个房子,由于不能相邻,dp[n]= dp[n-2] + nums[n] * 2.如果不偷第n个房子,那么dp[n 阅读全文
posted @ 2021-01-02 16:48 不学无墅_NKer 阅读(116) 评论(0) 推荐(0) 编辑
摘要: class Solution { public int uniquePathsWithObstacles(int[][] obstacleGrid) { int m = obstacleGrid.length, n = obstacleGrid[0].length; // dp[i][j] 表示 ( 阅读全文
posted @ 2021-01-02 14:58 不学无墅_NKer 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 思路:本题类似于LeetCode64. 最小路径和 class Solution { public int uniquePaths(int m, int n) { // dp[i][j] 表示 从(0,0) 到 (i,j)有多少不同的路径 int[][] dp = new int[m][n]; // 阅读全文
posted @ 2021-01-01 22:05 不学无墅_NKer 阅读(66) 评论(0) 推荐(0) 编辑
摘要: ☆☆☆思路:本题可以看成约束版的“爬楼梯问题”,即约束版的 f(n) = f(n-1) + f(n-2) 问题。 注意点1:由于 i 取 1 时,dp[len-2]取不到,所以要有n+1个。len-2决定了 dp[i] 应定义为 字符个数为i的方法总数。 注意点2:对于dp[0]的初值,举例如"12 阅读全文
posted @ 2021-01-01 21:26 不学无墅_NKer 阅读(102) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 31 下一页