
动态规划
lyd1995
这个作者很懒,什么都没留下…
展开
-
LeetCode5-最长回文子串
LeetCode5-最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”一、思路(一)直觉想法由于回文串的特点,左右对称,所以考虑设置两个指针分别指向起始位置和最后一个字符的位置,开始匹配具体做...原创 2019-02-10 19:33:32 · 193 阅读 · 0 评论 -
leetcode123-买卖股票的最佳时机 III
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 =...原创 2019-09-20 10:29:54 · 201 阅读 · 0 评论 -
leetcode714-买卖股票的最佳时机含手续费
给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每次交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。示例 1:输入: prices = [1, 3, 2, 8, 4, 9], fee = 2输出: 8解释: 能够达到的最大利...原创 2019-09-19 10:42:32 · 508 阅读 · 0 评论 -
leetcode309-最佳买卖股票时机含冷冻期
给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3 解释: 对应的交易状态为: [买入, 卖出,...原创 2019-09-19 09:54:12 · 201 阅读 · 0 评论 -
leetcode-264丑数 II
编写一个程序,找出第 n 个丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。一、思路(一)、动态规划我们先来看看,第i个丑数是怎么产生。首先,除了1之外的丑数都源于某个丑数乘以2,3,5,因此第i...原创 2019-09-09 09:18:42 · 189 阅读 · 1 评论 -
leetcode964-表示数字的最少运算符
给定一个正整数 x,我们将会写出一个形如 x (op1) x (op2) x (op3) x … 的表达式,其中每个运算符 op1,op2,… 可以是加、减、乘、除(+,-,*,或是 /)之一。例如,对于 x = 3,我们可以写出表达式 3 * 3 / 3 + 3 - 3,该式的值为 3 。在写这样的表达式时,我们需要遵守下面的惯例: 除运算符(/)返回有理数。 任何地方都没有括...原创 2019-09-09 08:45:50 · 780 阅读 · 0 评论 -
leetcode438-找到字符串中所有字母异位词
给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例 1:输入:s: "cbaebabacd" p: "abc"输出:[0, 6]解释:起始索引等于 0 的子串是 ...原创 2019-08-04 11:08:17 · 257 阅读 · 0 评论 -
LeetCode139-单词拆分
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆...原创 2019-06-30 18:34:09 · 176 阅读 · 0 评论 -
LeetCode121-买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意...原创 2019-06-14 16:34:27 · 112 阅读 · 0 评论 -
LeetCode120-三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。一、思路...原创 2019-06-13 13:43:13 · 122 阅读 · 0 评论 -
LeetCode96-不同的二叉搜索树
给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / ...原创 2019-05-15 20:11:06 · 132 阅读 · 0 评论 -
LeetCode91-解码方法
一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。示例 2:输入: "226"输出: 3解释: 它可以解码为 "BZ" (2 26), "VF...原创 2019-04-26 21:52:19 · 721 阅读 · 0 评论 -
LeetCode32- 最长有效括号
给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"一、思路(一)动态规划我们需要注意这里的问题,具有最优子结构问题,即:长度为nnn的字符串的最长有效括号长度,应该是在长度为n−1n-...原创 2019-04-11 21:37:59 · 221 阅读 · 0 评论 -
LeetCode64-最小路径和
LeetCode64-最小路径和给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。一、思路之前的题目,在没有给定权重的情况下,是可以用动态规划来解决...原创 2019-04-02 11:51:53 · 134 阅读 · 0 评论 -
CCF模拟题4-有趣的数
CCF模拟题4-有趣的数问题描述我们把一个数称为有趣的,当且仅当:它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。最高位数字不为0。因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。请计算恰好有n位的有趣的数的个数。由于答案可能非常大,只需要输出答案除以...原创 2019-04-01 21:14:46 · 736 阅读 · 0 评论 -
LeetCode63-不同路径 II
LeetCode63-不同路径 II一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 ...原创 2019-04-01 12:56:20 · 211 阅读 · 0 评论 -
LeetCode70-爬楼梯
LeetCode70-爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。3. 1 阶 + 1 阶 + ...原创 2019-03-31 19:30:53 · 104 阅读 · 0 评论 -
LeetCode10-正则表达式匹配
LeetCode10-正则表达式匹配给定一个字符串 (s) 和一个字符模式 §。实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符。‘*’ 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:...原创 2019-04-04 21:52:44 · 215 阅读 · 0 评论 -
leetcode-368. 最大整除子集
给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对 (Si,Sj) 都要满足:Si % Sj = 0 或 Sj % Si = 0。如果有多个目标子集,返回其中任何一个均可。示例 1:输入: [1,2,3]输出: [1,2] (当然, [1,3] 也正确)示例 2:输入: [1,2,4,8]输出: [1,2,4,8]一、思路一开始,我的思路是先找到一个集...原创 2019-10-07 17:01:29 · 643 阅读 · 0 评论