动态规划
lMonster81
淡泊以明志,宁静以致远
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode5.Longest Palindromic Substring最长回文字串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad" 输出: "bab" 注意: "aba"也是一个有效答案。示例 2:输入: "cbbd" 输出: "bb" 暴力法:class Solution {public: string longestPalindrome(string ...原创 2018-11-13 20:58:37 · 165 阅读 · 0 评论 -
Leetcode 124二叉树中的最大路径和
给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例2:输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 ...原创 2019-03-25 18:13:37 · 245 阅读 · 0 评论 -
Leetcode 128最长连续序列
给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为O(n)。示例:输入:[100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。用map,hash也可以class Solution{ public: int longestConsecutive(vect...原创 2019-03-25 18:09:36 · 211 阅读 · 0 评论 -
Leetcode309. Best Time to Buy and Sell Stock with Cooldown最佳买卖股票时机含冷冻期
给定一个整数数组,其中第i个元素代表了第i天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2] 输出: 3 解释: 对应的交易状态为: [买入, 卖出...原创 2019-03-04 19:45:18 · 241 阅读 · 0 评论 -
Leetcode140单词拆分 II
给定一个非空字符串s和一个包含非空单词列表的字典wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "catsanddog" wordDict = ["cat", "cats", "and", "sand", "dog"]原创 2019-03-05 21:41:13 · 332 阅读 · 0 评论 -
01背包,完全背包,多重背包模板及例题
//每个物品的重量 vector<int> weight; //每个物品的价值 vector<int> value; //每个物品的数量 vector<int> nums; //背包的总重量 int all; //多少种物品 int n;01背包一般版本vector&...原创 2019-03-01 19:54:22 · 759 阅读 · 0 评论 -
Leetcode931. Minimum Falling Path Sum下降路径最小和
给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和。下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列。 示例:输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:12 解释: 可能的下降路径有:[1,4,7], [1,4,8], [1,5,7], [1,5,8], [1,5,9] [2,...原创 2019-01-12 10:54:56 · 262 阅读 · 0 评论 -
Leetcode134. Gas Station加油站
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输入数组...原创 2018-12-11 19:43:15 · 198 阅读 · 0 评论 -
Leetcode152. Maximum Product Subarray乘积的最大子序列
给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 维护三个变量:局部最大值,局部最小值,总最大值 class...原创 2018-12-11 19:41:54 · 239 阅读 · 0 评论 -
Leetcode300. Longest Increasing Subsequence最长上升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。 class Solution {public: int ...原创 2018-12-10 18:05:42 · 254 阅读 · 0 评论 -
Leetcode279. Perfect Squares完全平方数
给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13 输出: 2 解释: 13 = 4 + 9. class Solution {public: int n...原创 2018-12-10 18:05:12 · 361 阅读 · 0 评论 -
Leetcode139. Word Break单词拆分
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可以...原创 2018-12-10 18:04:40 · 260 阅读 · 0 评论 -
Leetcode322. Coin Change零钱兑换
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11 输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3 输出: -1说明:...原创 2018-12-10 18:00:05 · 211 阅读 · 0 评论 -
Leetcode120.Triangle三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[[2],[3,4],[6,5,7],[4,1,8,3] ]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。 至上到下的动态规...原创 2018-11-17 18:45:07 · 189 阅读 · 0 评论 -
Leetcode64.Minimum Path Sum最小路径和
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 这题因为限制了只能往下或者往右走一步,所以可以从0开始从上往下遍历,其他类型的题或许就要从最大的开...原创 2018-11-14 22:29:10 · 123 阅读 · 0 评论 -
Leetcode62.Unique Paths不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2 输出: 3 解释...原创 2018-11-14 22:28:12 · 131 阅读 · 0 评论 -
Leetcode91.Decode Ways解码方法
一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1 'B' -> 2 ... 'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12" 输出: 2 解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。示例 2:输入: "226" 输出: 3 解释: 它可以解码为 "BZ" (原创 2018-11-14 22:30:17 · 143 阅读 · 0 评论 -
Leetcode96.Unique Binary Search Trees不同的二叉搜索树
给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?示例:输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 假设n个节点存在二叉排序树的个数是G(n),1为根节点,2为根节点,...,n为根节点,当1为根节点时,其左子树节点个数为0,右子树节点个数为n-1,同理当2为根节点时,其左子树节点个数为1,右子树节点为n-...原创 2018-11-14 22:31:16 · 141 阅读 · 0 评论 -
Leetcode 300最大长度子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为O(n2) 。dp[i]表示以nums[i]为结尾的最大长度的子序列cla...原创 2019-03-25 18:16:38 · 338 阅读 · 0 评论
分享