121. 买卖股票的最佳时机 解题方法 思路:与打家劫舍三类似,dp数组需要记录两个状态,持有股票状态与不持有股票状态,还需要记录天数,所以dp需要使用二维数值。 dp数组...
198. 打家劫舍 解题方法 dp数组的含义:dp[i]:当房屋数量为i时,能偷窃到的最高金额为dp[i];确定递推公式:max(dp[i-1], dp[i-2] + nums[i]);; dp[i-1]表示不偷窃nums[i...
139. 单词拆分 解题方法 思路:单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。拆分时可以重复使用字典中的单词,说明就是一个完全...
322. 零钱兑换 解题方法 思路:与之前完全背包题型不同,这又算是一种新的题型,求解装满背包的最少物品数。之前的题型是,装满背包的最大价值,装满背包有多少种方式。...
235. 二叉搜索树的最近公共祖先 解题方法 思路:题目给定的二叉树为二叉搜索树,也就是说当前树节点是有序的,则公共祖先一定是在[p,q]中间。当我们从上向下去递归遍历,...
518. 零钱兑换 II 解题方法 思路:本题物品就是硬币coins,与之前背包问题不一样的是,背包物品可以无限使用,还记得之前01背包一维数组那里强调过,内层循环背包时候:需...
1049. 最后一块石头的重量 II 解题方法 思路:尽量让石头分成重量相同的两堆,相撞之后剩下的石头最小。背包容量为sum/2,这里有个小细节,有小数时,需要向下取整,这样s...
669. 修剪二叉搜索树 解题方法 修剪二叉搜索数有个坑,就是需要注意不能一刀切。当遍历到节点值小于low时不能直接返回,还需要检查当前节点右子树上是否存在大于等于low...
背包理论基础 01背包 二维解法 问题 本题leetcode没有原题,是一道拟定的01背包题:给定一个 容量为4 的背包,问在以下物品当中,每件物品只能用一次,能装入的最大价值是...
343. 整数拆分 解题方法 dp[i] = 分拆数字i,可以得到的最大乘积为dp[i]dp[i] = max(max(i x (i-j), j x dp[i-j]), dp[i]),其中i x (i-j)为拆分两个数的情况,j x dp[i-j...
62. 不同路径 解题方法 dp[i][j] 表示走到[i,j]的位置有几种走法当前位置[i,j],因为机器人只能向下或者向右移动一步,所以要到达dp[i][j],只能从它的上方到达或者它的...
动态规划理论基础 动态规划题型 [图片] 什么是动态规划 [图片] 动态规划,英文:Dynamic Programming,简称DP。动态规划中每一个状态一定是由上一个状态推导出来的,这一...
738. 单调递增的数字 注意的地方 int类型使用strval(n)转换为string类型str后,使用数组方式获取str[i],不能使用自增自减操作str[i]++ , str[i]–,以及 str[i] -= str[i]...
435. 无重叠区间 Tips 写这题的时候看了下别人的解法,发现多维数组排序,使用array_multisort(array_column($intervals, “0”), $intervals);会比昨天引爆气球题目使用的...
860. 柠檬水找零 注意的地方 解题方法 这题没啥技巧,纯纯的把每种情况罗列出来,然后判断剩余的数量是否够找零即可。唯一的注意点是:在收取20元时,需要优先扣除10元,...
社交账号:
我要举报该,理由是: