
动态规划
文章平均质量分 68
one_zero_one
这个作者很懒,什么都没留下…
展开
-
动态规划⑥
①300. 最长递增子序列难度中等1743给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。class Solution: def lengthO...原创 2021-07-31 18:37:17 · 133 阅读 · 0 评论 -
动态规划⑤
①1292. 元素和小于等于阈值的正方形的最大边长难度中等66收藏分享切换为英文接收动态反馈给你一个大小为m x n的矩阵mat和一个整数阈值threshold。请你返回元素总和小于或等于阈值的正方形区域的最大边长;如果没有这样的正方形区域,则返回0。示例 1:输入:mat = [[1,1,3,2,4,3,2],[1,1,3,2,4,3,2],[1,1,3,2,4,3,2]], threshold = 4输出:2解释:总和小于或等于 4 的正方形的最大边长...原创 2021-07-24 23:59:21 · 272 阅读 · 0 评论 -
动态规划四
①139. 单词拆分难度中等1061给定一个非空字符串s和一个包含非空单词的列表wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 2:输入: s = "applepenapple", wordDict = ["apple", "pen"]输出: true解释: 返回 true 因为 示例 3:输入: s = "catsandog", wordDict = ...原创 2021-07-19 23:13:26 · 767 阅读 · 2 评论 -
动态规划③
①152. 乘积最大子数组给你一个整数数组nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。# 考虑负数情况,需要一个数组来保存最小值class Solution: def maxProduct(s...原创 2021-07-14 23:38:38 · 179 阅读 · 1 评论 -
动态规划二
①746. 使用最小花费爬楼梯数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。示例1:输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 1...原创 2021-07-09 23:04:51 · 207 阅读 · 3 评论 -
回溯练习1
1219. 黄金矿工:https://leetcode-cn.com/problems/path-with-maximum-gold你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是 0。为了使收益最大化,矿工需要按以下规则来开采黄金:每当矿工进入一个单元,就会收集该单元格中的所有黄金。矿工每次可以从当前位置向上下左右四个方向走。每个单元格只能被开采(进原创 2021-06-27 23:23:55 · 153 阅读 · 0 评论 -
动态规划练习1
一动态规划理解1 动态规划的三要素:最优子结构,边界和状态转移函数,最优子结构是指每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到(子问题的最优解能够决定这个问题的最优解);边界指的是问题最小子集的解(初始范围);状态转移函数是指从一个阶段向另一个阶段过度的具体形式,描述的是两个相邻子问题之间的关系(递推式);重叠子问题,对每个子问题只计算一次,然后将其计算的结果保存到一个表格中,每一次需要上一个子问题解时,进行调用,只要o(1)时间复杂度,准确的说,动态规划是利用空间去换取时间的算原创 2021-06-27 22:30:16 · 150 阅读 · 0 评论