![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
太阳别落下啊
这个作者很懒,什么都没留下…
展开
-
LeetCode55. 跳跃游戏
/** * 给定一个非负整数数组nums ,你最初位于数组的 第一个下标 。 * * 数组中的每个元素代表你在该位置可以跳跃的最大长度。 * * 判断你是否能够到达最后一个下标。 * * * * 示例1: * * 输入:nums = [2,3,1,1,4] * 输出:true * 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。 * 示例2: * * 输入:nums = [3,2,1,0,4] * 输出:fals...原创 2021-05-14 17:57:16 · 285 阅读 · 0 评论 -
LeetCode673. 最长递增子序列的个数
/** * 给定一个未排序的整数数组,找到最长递增子序列的个数。 * * 示例 1: * * 输入: [1,3,5,4,7] * 输出: 2 * 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。 * 示例 2: * * 输入: [2,2,2,2,2] * 输出: 5 * 解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。 * 注意:给定的数组长度不超过 2000 并且结果一定是32位有符号整数。 * ..原创 2021-05-11 22:48:11 · 71 阅读 · 0 评论 -
LeetCode139. 单词拆分
/** * 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。 * * 说明: * * 拆分时可以重复使用字典中的单词。 * 你可以假设字典中没有重复的单词。 * 示例 1: * * 输入: s = "leetcode", wordDict = ["leet", "code"] * 输出: true * 解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。 * ..原创 2021-05-10 14:59:29 · 49 阅读 · 0 评论 -
LeetCode304. 二维区域和检索 - 矩阵不可变
/** * 给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1,col1) ,右下角为 (row2,col2) 。 * 上图子矩阵左上角(row1, col1) = (2, 1),右下角(row2, col2) = (4, 3),该子矩形内元素的总和为 8。 * 示例: * * 给定 matrix = [ * [3, 0, 1, 4, 2], * [5, 6, 3, 2, 1], * [1, 2, 0, 1, 5], * [4, 1,...原创 2021-04-20 21:09:34 · 61 阅读 · 0 评论 -
LeetCode221. 最大正方形
/**221. 最大正方形在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximal-square著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。*/class Solution {public: sta.原创 2020-05-08 20:29:55 · 132 阅读 · 0 评论 -
LeetCode91. 解码方法
/**91. 解码方法一条包含字母A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释:它可以解码为 "AB"(1 2)或者 "L"(12)。示例2:输入: "226"输出: 3解释:它可以解码为 ...原创 2019-09-27 11:59:26 · 85 阅读 · 0 评论 -
LeetCode714. 买卖股票的最佳时机含手续费
/**714. 买卖股票的最佳时机含手续费给定一个整数数组prices,其中第i个元素代表了第i天的股票价格 ;非负整数fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每次交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。示例 1:输入: prices = [1, 3, 2, 8, 4, 9]...原创 2019-09-27 10:21:44 · 88 阅读 · 0 评论 -
LeetCode303. 区域和检索 - 数组不可变
借鉴了别人的答案,比我自己的巧妙的多。原答案:https://leetcode-cn.com/problems/range-sum-query-immutable/solution/cyu-yan-gen-ben-bu-xu-yao-te-shu-chu-li-by-weeping//**303. 区域和检索 - 数组不可变给定一个整数数组 nums,求出数组从索引 i 到 j ...转载 2019-09-26 00:55:09 · 146 阅读 · 0 评论 -
LeetCode746. 使用最小花费爬楼梯
/**746. 使用最小花费爬楼梯数组的每个索引做为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例1:输入: cost = [10, 15, 20]...原创 2019-09-25 20:16:59 · 52 阅读 · 0 评论 -
LeetCode413. 等差数列划分
/**413. 等差数列划分如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足...原创 2019-09-27 16:36:27 · 118 阅读 · 0 评论 -
LeetCode152. 乘积最大子序列
/**152. 乘积最大子序列给定一个整数数组 nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。来源:力扣(LeetCode)链接:https:...原创 2019-09-27 20:59:01 · 92 阅读 · 0 评论 -
LeetCode322. 零钱兑换
/**322. 零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3...原创 2019-09-29 22:02:26 · 97 阅读 · 0 评论 -
LeetCode300. 最长上升子序列
/**300. 最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为O(n2) 。来源:力扣(LeetCode)链接:htt...原创 2019-09-30 12:43:21 · 168 阅读 · 0 评论 -
LeetCode486. 预测赢家
/**486. 预测赢家(877.石子游戏)给定一个表示分数的非负整数数组。 玩家1从数组任意一端拿取一个分数,随后玩家2继续从剩余数组任意一端拿取分数,然后玩家1拿,……。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。...原创 2019-09-30 15:04:14 · 148 阅读 · 0 评论 -
LeetCode357. 计算各个位数不同的数字个数
/**357. 计算各个位数不同的数字个数给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10^n。示例:输入: 2输出: 91解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字。来源:力扣(LeetCode)链接:https://leetcode-cn.com/pr...原创 2019-09-30 15:34:27 · 116 阅读 · 0 评论 -
LeetCode198. 打家劫舍
/**198. 打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 ...原创 2019-09-25 19:49:17 · 53 阅读 · 0 评论 -
LeetCode121. 买卖股票的最佳时机
/**121. 买卖股票的最佳时机给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,...原创 2019-09-25 19:36:12 · 58 阅读 · 0 评论 -
LeetCode338:比特位计数
/**338 比特位计数给定一个非负整数num。对于0 ≤ i ≤ num 范围中的每个数字i,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例2:输入: 5输出: [0,1,1,2,1,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/counting...原创 2019-08-28 17:57:20 · 70 阅读 · 0 评论 -
LeetCode64:最小路径和
/**64 最小路径和给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。来源:力扣(LeetCode)链接:https://leetcod...原创 2019-08-28 21:22:10 · 73 阅读 · 0 评论 -
LeetCode931. 下降路径最小和
/**931. 下降路径最小和给定一个方形整数数组A,我们想要得到通过 A 的下降路径的最小和。下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列。示例:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:12解释:可能的下降路径有:[1,4,7], [1,4,8], [1,5,7], [1,5...原创 2019-08-29 09:55:57 · 112 阅读 · 0 评论 -
LeetCode62. 不同路径
/**62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m和 n 的值均不超过 100。示例1:输入: m = 3, n =...原创 2019-08-29 18:26:21 · 92 阅读 · 0 评论 -
LeetCode53. 最大子序和
/**53. 最大子序和给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-...原创 2019-08-30 15:20:43 · 67 阅读 · 0 评论 -
LeetCode718. 最长重复子数组
/**718. 最长重复子数组给两个整数数组A和B,返回两个数组中公共的、长度最长的子数组的长度。示例 1:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出: 3解释: 长度最长的公共子数组是 [3, 2, 1]。说明:1 <= len(A), len(B) <= 10000 <= A[i], B[i] < 100...原创 2019-08-30 15:51:21 · 69 阅读 · 0 评论 -
LeetCode264. 丑数 II
看评论了,三指针法,头一次听说,真是不好想。/**264. 丑数 II编写一个程序,找出第 n 个丑数。丑数就是只包含质因数2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1是丑数。n不超过1690。来源:力扣(LeetCode)链接:h...原创 2019-08-30 19:29:22 · 83 阅读 · 0 评论 -
LeetCode877. 石子游戏
/**877. 石子游戏亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子piles[i]。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比...原创 2019-09-04 13:12:18 · 108 阅读 · 0 评论 -
LeetCode279. 完全平方数
/**279. 完全平方数给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.来源:力扣(LeetCode)链接:https://...原创 2019-09-10 19:33:58 · 109 阅读 · 0 评论 -
LeetCode120. 三角形最小路径和
/**120. 三角形最小路径和给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。说明:如果你可以只使用 O(n)的额外空间(n 为三角形的总行数)来解决这...原创 2019-09-10 20:13:31 · 85 阅读 · 0 评论 -
LeetCode1025. 除数博弈
/**1025. 除数博弈爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。最初,黑板上有一个数字N。在每个玩家的回合,玩家需要执行以下操作:选出任一x,满足0 < x < N 且N % x == 0。用 N - x替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。只有在爱丽丝在游戏中取得胜利时才返回True,否则返回 false...原创 2019-09-16 17:35:55 · 78 阅读 · 0 评论 -
LeetCode96. 不同的二叉搜索树
/**96. 不同的二叉搜索树给定一个整数 n,求以1 ...n为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 ...原创 2019-09-16 17:50:57 · 102 阅读 · 0 评论 -
LeetCode712. 两个字符串的最小ASCII删除和
/**712. 两个字符串的最小ASCII删除和给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。示例 1:输入: s1 = "sea", s2 = "eat"输出: 231解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。在 "eat" 中删除 "t" 并将 116 加入总和。结束时,两个字符串相等,115 + ...原创 2019-09-24 16:12:46 · 109 阅读 · 0 评论 -
LeetCode70. 爬楼梯
/**70. 爬楼梯假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 ...原创 2019-09-25 17:50:03 · 88 阅读 · 0 评论 -
LeetCode392:判断子序列
/**392 判断子序列给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不...原创 2019-08-28 17:37:08 · 134 阅读 · 0 评论