摘要: ☆☆☆☆思路:树形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) 编辑