动态规划
动态规划的LeetCode题目
great978
通信工程专业的本科生
展开
-
动态规划——LeetCode152乘积最大子序列
给定一个整数数组 nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。思路:max表示以当前节点为终结节点的最大连续子序列乘积 min表示以当前节点为终...原创 2019-11-24 23:10:33 · 281 阅读 · 0 评论 -
动态规划——LeetCode279完全平方数
给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.动态规划状态转移方程:dp[i]=Math.min(dp[i],dp[i-...原创 2019-11-20 22:23:19 · 235 阅读 · 0 评论 -
动态规划——LeetCode221最大正方形
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4题解关键思路:这道题检查正方形的第四个角作递归dp记录最大正方形的边长代码:class Solution { public int maximalSquare(ch...原创 2019-11-19 23:42:32 · 170 阅读 · 0 评论 -
动态规划——LeetCode322零钱兑换(最少硬币数量)
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1说明:你可...原创 2019-11-18 23:08:56 · 689 阅读 · 0 评论 -
动态规划——LeetCode264丑数 II
编写一个程序,找出第 n 个丑数。丑数就是只包含质因数2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1是丑数。n不超过1690。思考:题解当中几乎只有两种思路,最小堆和dp算法(三指针)dp解法中当前状态不取决于前一项,而是取决于前面的项数...原创 2019-11-16 18:55:43 · 205 阅读 · 0 评论 -
动态规划——LeetCode213打家劫舍 II
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例1:输入: [2,3,2]输出: 3解释: ...原创 2019-11-16 16:50:35 · 190 阅读 · 0 评论 -
动态规划——LeetCode139单词拆分
题目描述:给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetco...原创 2019-11-13 23:32:00 · 199 阅读 · 0 评论 -
动态规划——LeetCode120三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。说明:如果你可以只使用 O(n)的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。...原创 2019-11-12 22:04:08 · 145 阅读 · 0 评论