
dp
文章平均质量分 68
赵奕升
过尽千帆皆不是,斜晖脉脉水悠悠
展开
-
leetcode.403 青蛙过河-回溯解法/dp解法
题目:一只青蛙想要过河。 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有)。 青蛙可以跳上石子,但是不可以跳入水中。给你石子的位置列表 stones(用单元格序号 升序 表示), 请判定青蛙能否成功过河(即能否在最后一步跳至最后一块石子上)。开始时, 青蛙默认已站在第一块石子上,并可以假定它第一步只能跳跃一个单位(即只能从单元格 1 跳至单元格 2 )。如果青蛙上一步跳跃了 k 个单位,那么它接下来的跳跃距离只能选择为 k - 1、k 或 k + 1 个单位。原创 2021-04-29 14:31:34 · 1613 阅读 · 4 评论 -
leetcode377. 组合总和 Ⅳ(递归和dp解法(已更新dp解法以及dp思路))
给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。示例 1:输入:nums = [1,2,3], target = 4输出:7解释:所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。解法1:递归不出所料,超时;上面的原创 2021-04-24 23:21:16 · 468 阅读 · 0 评论 -
leetcode 368.最大整除子集
给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对 (answer[i], answer[j]) 都应当满足:answer[i] % answer[j] == 0 ,或answer[j] % answer[i] == 0如果存在多个有效解子集,返回其中任何一个均可。示例 1:输入:nums = [1,2,3]输出:[1,2]解释:[1,3] 也会被视为正确答案。示例 2:输入:nums = [1,2,4,8]输出:[1,2原创 2021-04-23 15:58:20 · 176 阅读 · 0 评论 -
dp解法 leetcode 363.矩形区域不超过 K 的最大数值和
题目:给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。题目数据保证总会存在一个数值和不超过 k 的矩形区域。示例 1:输入:matrix = [[1,0,1],[0,-2,3]], k = 2输出:2解释:蓝色边框圈出来的矩形区域 [[0, 1], [-2, 3]] 的数值和是 2,且 2 是不超过 k 的最大数字(k = 2示例 2:输入:matrix = [[2,2,-1]], k = 3输出:3作者dp的结果:原创 2021-04-22 14:06:43 · 315 阅读 · 2 评论 -
leetcode 91.解码方法(DP)
从算法上来看是很简单的dp做法,最开始考虑过dfs暴力搜索,后来发现就算只有100的数据量也会超时,遂转换思路采用dp,转移方程很简单就能推出来当dp[i]在[1,9]之间时,dp[i] += dp[i-1]当dp[i]在[10,26]时,dp[i] += dp[i-2]合并以上两种情况可得dp[i] = dp[i-1]+dp[i-2]写成代码就是在for循环中定义两次if,分别进行判断相加麻烦的地方在于边界条件的判定…有点费力dp[0] = 1;当有且仅有1个字符被给出时,仅有一种映射方法原创 2021-04-21 11:06:52 · 212 阅读 · 0 评论