leetcode
文章平均质量分 55
lulutoy
平凡人创造的能量条
展开
-
1312. 让字符串成为回文串的最少插入次数(leetcode)
给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。解释:字符串 “zzazz” 已经是回文串了,所以不需要做任何插入操作。解释:插入 5 个字符后字符串变为 “leetcodocteel”。解释:字符串可变为 “mbdadbm” 或者 “mdbabdm”。请你返回让 s 成为回文串的 最少操作次数。「回文串」是正读和反读都相同的字符串。输入:s = “leetcode”输入:s = “zzazz”输入:s = “mbadm”s 中所有字符都是小写字母。原创 2024-07-02 12:02:20 · 321 阅读 · 0 评论 -
188. 买卖股票的最佳时机 IV(leetcode)
解释:在第 2 天 (股票价格 = 2) 的时候买入,在第 3 天 (股票价格 = 6) 的时候卖出, 这笔交易所能获得利润 = 6-2 = 4。随后,在第 5 天 (股票价格 = 0) 的时候买入,在第 6 天 (股票价格 = 3) 的时候卖出, 这笔交易所能获得利润 = 3-0 = 3。解释:在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2。输入:k = 2, prices = [3,2,6,5,0,3]原创 2024-07-02 12:00:22 · 284 阅读 · 0 评论 -
123. 买卖股票的最佳时机 III(leetcode)
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3。解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3。输入:prices = [3,3,5,0,0,3,1,4]输入:prices = [1]原创 2024-07-02 11:58:14 · 910 阅读 · 0 评论 -
740. 删除并获得点数(leetcode)
每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。之后,再次删除 3 获得 3 个点数,再次删除 3 获得 3 个点数。删除 3 获得 3 个点数,接着要删除两个 2 和 4。之后,删除 2 获得 2 个点数。总共获得 6 个点数。删除 4 获得 4 个点数,因此 3 也被删除。输入:nums = [2,2,3,3,3,4]输入:nums = [3,4,2]总共获得 9 个点数。原创 2024-06-30 08:30:00 · 1521 阅读 · 0 评论 -
面试题 08.11. 硬币(leetcode)
给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)0原创 2024-06-30 09:00:00 · 276 阅读 · 0 评论 -
1186. 删除一次得到子数组最大和(leetcode)
换句话说,你可以从原数组中选出一个子数组,并可以决定要不要从中删除一个元素(只能删一次哦),(删除后)子数组中至少应当有一个元素,然后该子数组(剩下)的元素总和是所有子数组之中最大的。我们应该直接选择 [-1],或者选择 [-1, -1] 再从中删去一个 -1。解释:我们可以选出 [1, -2, 0, 3],然后删掉 -2,这样得到 [1, 0, 3],和最大。输入:arr = [-1,-1,-1,-1]输入:arr = [1,-2,-2,3]输入:arr = [1,-2,0,3]原创 2024-06-30 08:30:00 · 536 阅读 · 0 评论 -
1262. 可被三整除的最大和(leetcode)
解释:最后得到的子数组不能为空,所以我们不能选择 [-1] 并从中删去 -1 来得到 0。解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。我们应该直接选择 [-1],或者选择 [-1, -1] 再从中删去一个 -1。给你一个整数数组 nums,请你找出并返回能被三整除的元素 最大和。输入:arr = [-1,-1,-1,-1]输入:nums = [3,6,5,1,8]解释:我们直接选出 [3],这就是最大和。输入:arr = [1,-2,-2,3]原创 2024-06-30 08:30:00 · 587 阅读 · 0 评论 -
338. 比特位计数(leetcode)
给你一个整数 n ,对于 0原创 2024-06-30 08:00:00 · 232 阅读 · 0 评论 -
91. 解码方法(leetcode)
注意,消息不能分组为 (1 11 06) ,因为 “06” 不能映射为 “F” ,这是由于 “6” 和 “06” 在映射中并不等价。要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。解释:它可以解码为 “BZ” (2 26), “VF” (22 6), 或者 “BBF” (2 2 6)。解释:“06” 无法映射到 “F” ,因为存在前导零(“6” 和 “06” 并不等价)。解释:它可以解码为 “AB”(1 2)或者 “L”(12)。输入:s = “06”原创 2024-06-24 12:37:31 · 467 阅读 · 0 评论 -
96. 不同的二叉搜索树(leetcode)
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。原创 2024-06-28 08:30:00 · 229 阅读 · 0 评论 -
131. 分割回文串(leetcode)
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是。输出:[[“a”,“a”,“b”],[“aa”,“b”]]返回 s 所有可能的分割方案。输入:s = “aab”s 仅由小写英文字母组成。输入:s = “a”输出:[[“a”]]原创 2024-06-28 08:45:00 · 175 阅读 · 0 评论 -
1027. 最长等差数列(leetcode)
回想一下,nums 的子序列是一个列表 nums[i1], nums[i2], …< ik原创 2024-06-27 08:45:00 · 395 阅读 · 0 评论 -
376. 摆动序列(leetcode)
例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。输入:nums = [1,17,5,10,13,15,10,5,16,8]原创 2024-06-27 08:00:00 · 629 阅读 · 0 评论 -
714. 买卖股票的最佳时机含手续费(leetcode)
给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格;如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。输入:prices = [1, 3, 2, 8, 4, 9], fee = 2。总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8。输入:prices = [1,3,7,5,10,3], fee = 3。在此处卖出 prices[3] = 8。原创 2024-06-26 08:45:00 · 235 阅读 · 0 评论 -
516. 最长回文子序列(leetcode)
子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。解释:一个可能的最长回文子序列为 “bbbb”。解释:一个可能的最长回文子序列为 “bb”。输入:s = “bbbab”输入:s = “cbbd”s 仅由小写英文字母组成。原创 2024-06-26 08:30:00 · 122 阅读 · 0 评论 -
673. 最长递增子序列的个数(leetcode)
解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。给定一个未排序的整数数组 nums , 返回最长递增子序列的个数。输入:nums = [5,4,-1,7,8]注意 这个数列必须是 严格 递增的。输入: [1,3,5,4,7]输入: [2,2,2,2,2]原创 2024-06-26 09:00:00 · 240 阅读 · 0 评论 -
343. 整数拆分(leetcode)
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。返回你可以获得的最大乘积。解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。解释: 2 = 1 + 1, 1 × 1 = 1。输入: n = 10。原创 2024-06-28 08:00:00 · 321 阅读 · 0 评论 -
120. 三角形最小路径和(leetcode)
每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1。输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。给定一个三角形 triangle ,找出自顶向下的最小路径和。输入:triangle = [[-10]]原创 2024-06-26 08:30:00 · 243 阅读 · 0 评论 -
97. 交错字符串(leetcode)
交错 是 s1 + t1 + s2 + t2 + s3 + t3 + …或者 t1 + s1 + t2 + s2 + t3 + s3 + …输入:s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”输入:s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。输入:s1 = “”, s2 = “”, s3 = “”原创 2024-06-25 08:45:00 · 287 阅读 · 0 评论 -
416. 分割等和子集(leetcode)
给你一个 只包含正整数 的 非空 数组 nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。解释:数组可以分割成 [1, 5, 5] 和 [11]。解释:数组不能分割成两个元素和相等的子集。输入:nums = [1,5,11,5]输入:nums = [1,2,3,5]原创 2024-06-25 08:00:00 · 419 阅读 · 0 评论 -
1143. 最长公共子序列(leetcode)
给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。输入:text1 = “abcde”, text2 = “ace”输入:text1 = “abc”, text2 = “abc”输入:text1 = “abc”, text2 = “def”原创 2024-06-24 09:15:00 · 137 阅读 · 0 评论 -
279. 完全平方数(leetcode)
给你一个整数 n ,返回 和为 n 的完全平方数的最少数量。完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。解释:12 = 4 + 4 + 4。解释:13 = 4 + 9。原创 2024-06-24 08:30:00 · 533 阅读 · 0 评论 -
63. 不同路径 II(leetcode)
机器人试图达到网格的右下角(在下图中标记为 “Finish”)。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]那么从左上角到右下角将会有多少条不同的路径?输入:obstacleGrid = [[0,1],[0,0]]obstacleGrid[i][j] 为 0 或 1。网格中的障碍物和空位置分别用 1 和 0 来表示。解释:3x3 网格的正中间有一个障碍物。原创 2024-06-23 09:00:00 · 315 阅读 · 0 评论 -
647. 回文子串(leetcode)
解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”给你一个字符串 s ,请你统计并返回这个字符串中回文子串的数目。子字符串 是字符串中的由连续字符组成的一个序列。解释:三个回文子串: “a”, “b”, “c”回文字符串 是正着读和倒过来读一样的字符串。输入:s = “abc”输入:s = “aaa”s 由小写英文字母组成。原创 2024-06-23 08:00:00 · 355 阅读 · 0 评论 -
221. 最大正方形(leetcode)
输入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。输入:matrix = [[“0”,“1”],[“1”,“0”]]matrix[i][j] 为 ‘0’ 或 ‘1’输入:matrix = [[“0”]]原创 2024-06-22 08:30:00 · 306 阅读 · 0 评论 -
152. 乘积最大子数组(leetcode)
给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。nums 的任何前缀或后缀的乘积都 保证 是一个 32-位 整数。解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解释: 子数组 [2,3] 有最大乘积 6。输入: nums = [2,3,-2,4]输入: nums = [-2,0,-1]测试用例的答案是一个 32-位 整数。输出:1000000000。原创 2024-06-22 08:45:00 · 273 阅读 · 0 评论 -
718. 最长重复子数组(leetcode)
给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度。输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]输入:nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,0]解释:长度最长的公共子数组是 [3,2,1]。原创 2024-06-21 09:00:00 · 255 阅读 · 0 评论 -
518. 零钱兑换 II(leetcode)
给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0。假设每一种面额的硬币有无限个。输入:amount = 5, coins = [1, 2, 5]输入:amount = 10, coins = [10]输入:amount = 3, coins = [2]解释:只用面额 2 的硬币不能凑成总金额 3。题目数据保证结果符合 32 位带符号整数。coins 中的所有值 互不相同。原创 2024-06-21 09:00:00 · 294 阅读 · 0 评论 -
322. 零钱兑换(leetcode)
给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。输入:coins = [1, 2, 5], amount = 11。输入:coins = [2], amount = 3。输入:coins = [1], amount = 0。你可以认为每种硬币的数量是无限的。解释:11 = 5 + 5 + 1。原创 2024-06-20 08:45:00 · 514 阅读 · 0 评论 -
64. 最小路径和(leetcode)
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输入:grid = [[1,2,3],[4,5,6]]解释:因为路径 1→3→1→1→1 的总和最小。说明:每次只能向下或者向右移动一步。原创 2024-06-21 08:00:00 · 104 阅读 · 0 评论 -
5. 最长回文子串(leetcode)
给你一个字符串 s,找到 s 中最长的回文子串。输入:nums = [5,4,-1,7,8]解释:“aba” 同样是符合题意的答案。输入:s = “babad”输入:s = “cbbd”s 仅由数字和英文字母组成。原创 2024-06-20 09:00:00 · 776 阅读 · 0 评论 -
121. 买卖股票的最佳时机(leetcode)
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天买入这只股票,并选择在 未来的某一个不同的日子卖出该股票。解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;解释:在这种情况下, 没有交易完成, 所以最大利润为 0。输入:prices = [7,6,4,3,1]输入:[7,1,5,3,6,4]原创 2024-06-20 08:00:00 · 795 阅读 · 0 评论 -
72. 编辑距离(leetcode)
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。输入:word1 = “intention”, word2 = “execution”inention -> enention (将 ‘i’ 替换为 ‘e’)enention -> exention (将 ‘n’ 替换为 ‘x’)exention -> exection (将 ‘n’ 替换为 ‘c’)输入:word1 = “horse”, word2 = “ros”原创 2024-06-19 09:00:00 · 143 阅读 · 0 评论 -
712. 两个字符串的最小ASCII删除和(leetcode)
在 “leet” 中删除 “e” 将 101[e] 加入总和。如果改为将两个字符串转换为 “lee” 或 “eet”,我们会得到 433 或 417 的结果,比答案更大。结束时,两个字符串都等于 “let”,结果即为 100+101+101+101 = 403。解释: 在 “sea” 中删除 “s” 并将 “s” 的值(115)加入总和。解释: 在 “delete” 中删除 “dee” 字符串变成 “let”,输入: s1 = “delete”, s2 = “leet”原创 2024-06-19 09:00:00 · 378 阅读 · 0 评论 -
198. 打家劫舍(leetcode)
每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 2 + 9 + 1 = 12。原创 2024-06-18 09:30:00 · 124 阅读 · 0 评论 -
410. 分割数组的最大值(leetcode)
给定一个非负整数数组 nums 和一个整数 k ,你需要将这个数组分成 k 个非空的连续子数组。其中最好的方式是将其分为 [7,2,5] 和 [10,8]。因为此时这两个子数组各自的和的最大值为18,在所有情况中最小。输入:nums = [7,2,5,10,8], k = 2。输入:nums = [1,2,3,4,5], k = 2。设计一个算法使得这 k 个子数组各自和的最大值最小。一共有四种方法将 nums 分割为 2 个子数组。输入:nums = [1,4,4], k = 3。原创 2024-06-18 08:30:00 · 590 阅读 · 0 评论 -
300. 最长递增子序列(leetcode)
子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。解释:最长递增子序列是 [2,3,7,101],因此长度为 4。给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。输入:nums = [10,9,2,5,3,7,101,18]输入:nums = [7,7,7,7,7,7,7]输入:nums = [0,1,0,3,2,3]原创 2024-06-17 09:30:00 · 362 阅读 · 0 评论 -
3. 无重复字符的最长子串(leetcode)
给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。输入: s = “abcabcbb”s 由英文字母、数字、符号和空格组成。输入: s = “pwwkew”输入: s = “bbbbb”原创 2024-06-05 22:54:17 · 329 阅读 · 0 评论 -
53. 最大子数组和(leetcode)
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]解释:连续子数组 [4,-1,2,1] 的和最大,为 6。输入:nums = [5,4,-1,7,8]输入:nums = [1]原创 2024-06-04 20:41:37 · 549 阅读 · 0 评论