leetcode
文章平均质量分 85
MD_
不拼一下 你怎么知道你不会成功!
展开
-
Leetcode 1015. 可被 K 整除的最小整数【构造循环节】
文章目录问题描述解题报告实现代码参考资料问题描述给定正整数 K,你需要找出可以被 K 整除的、仅包含数字 1 的最小正整数 N。返回 N 的长度。如果不存在这样的 N,就返回 -1。示例 1:输入:1输出:1解释:最小的答案是 N = 1,其长度为 1。示例 2:输入:2输出:-1解释:不存在可被 2 整除的正整数 N 。示例 3:输入:3输出:3解释:最小的答案是 N = 111,其长度为 3。提示:1 <= K <= 10^5解题报告实现代码class原创 2020-10-08 10:14:28 · 311 阅读 · 0 评论 -
Leetcode 208. 实现Trie(前缀树)
文章目录问题描述解题报告实现代码参考资料问题描述实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert(“apple”);trie.search(“apple”); // 返回 truetrie.search(“app”); // 返回 falsetrie.startsWith(“app”); // 返回 truetrie.insert(“app”);原创 2020-09-05 09:38:03 · 231 阅读 · 0 评论 -
Leetcode 111. 二叉树的最小深度
文章目录问题描述解题报告实现代码参考资料问题描述给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最小深度 2.解题报告注意:最小深度是根节点到 最近叶子节点 的最短路径上的节点数量。实现代码/** * Definition for a binary tree node. * struc原创 2020-08-21 10:49:35 · 199 阅读 · 0 评论 -
Leetcode 692. 前K个高频单词【重载比较运算符】
文章目录问题描述解题报告实现代码参考资料问题描述给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。注意,按字母顺序 “i” 在 “love” 之前。示例 2:输入: [原创 2020-08-07 16:14:59 · 315 阅读 · 3 评论 -
Leetcode 914. 卡牌分组
文章目录问题描述解题报告实现代码问题描述给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 XXX,使我们可以将整副牌按下述规则分成1组或更多组:每组都有 XXX 张牌。组内所有的牌上都写着相同的整数。当且仅当你可选的 X>=2X>=2X>=2 时返回true。解题报告首先登记每个数出现的次数,当所有的次数的最大公约数 >=2>=2>...原创 2020-03-27 21:45:55 · 80 阅读 · 0 评论 -
Leetcode 面试题 08.03. 魔术索引【二分法的另类实现】
文章目录问题描述解题报告实现代码参考资料问题描述魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。示例1:输入:nums = [0, 2, 3, 4, 5]输出:0说明: 0下标的元素为0示例2:输入:nums = [1, 1, 1]输出:1提示:nums长度在[1, 1000000]之间解题报告二分法实原创 2020-07-31 08:54:40 · 187 阅读 · 0 评论 -
Leetcode 658. 找到 K 个最接近的元素【二分查找】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数。示例 1:输入: [1,2,3,4,5], k=4, x=3输出: [1,2,3,4]示例 2:输入: [1,2,3,4,5], k=4, x=-1输出: [1,2,3,4]说明:k 的值为正数,且总是小于给定排序数组的长度。数组不为空,且长度不超过 10原创 2020-07-30 20:12:56 · 278 阅读 · 0 评论 -
Leetcode 611. 有效三角形的个数【通过排序减少时间复杂度】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是:2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3注意:数组长度不超过1000。数组里整数的范围为 [0, 1000]。解题报告暴力解决的时间复杂度为 O(n3)O(n^3)O(n3)可以通过排序减少时间复杂度。排序后,当选定两个数之后:如果第三个数的索引边界原创 2020-07-28 11:27:22 · 215 阅读 · 0 评论 -
两数相加系列【需要注意细节】
文章目录Leetcode 面试题 02.05. 链表求和问题描述解题报告实现代码Leetcode 67. 二进制求和问题描述解题报告实现代码参考资料Leetcode 面试题 02.05. 链表求和问题描述给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295输出:2 -> 1 ->原创 2020-07-28 10:19:07 · 182 阅读 · 0 评论 -
Leetcode 剑指 Offer 54. 二叉搜索树的第k大节点【二叉树的中序遍历】
文章目录问题描述解题报告实现代码参考资料问题描述解题报告由于二叉搜索的中序遍历可以得到一个有序序列,所以本题用中序遍历来实现。中序遍历有 递归 和 非递归 两种实现方式。如果采用 递归 的方式,则需要将树中所有节点遍历完了之后,取出有序序列的第 k 大元素;如果采用 非递归 的方式,则只需遍历到第 k 个节点,即可跳出程序。另外需要注意的一点是:中序遍历时【左-中-右】得到的是从小到大的有序序列;【右-中-左】得到的是从大到小的有序序列,而本题宜采用【右-中-左】的遍历方式。实现代码/*原创 2020-07-27 10:46:30 · 198 阅读 · 0 评论 -
Leetcode 392. 判断子序列【简单的字符串匹配, 涉及一对一和多对一的匹配问题】
文章目录问题描述解题报告实现代码参考资料问题描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 1:s = “abc”, t = “ahbgdc”返回 true.示例原创 2020-07-27 09:17:15 · 312 阅读 · 0 评论 -
Leetcode 1038. 从二叉搜索树到更大和树【逆向中序遍历】
文章目录问题描述解题报告实现代码参考资料问题描述给出二叉 搜索 树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,2原创 2020-07-25 21:49:26 · 509 阅读 · 0 评论 -
Leetcode 410. 分割数组的最大值【二分法】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ m ≤ min(50, n)示例:输入:nums = [7,2,5,10,8]m = 2输出:18解释:一共有四种方法将nums分割为2个子数组。其中最好的方式是将其分为[7,2,5] 和 [10,8],因为此时这两个子数组各自的和原创 2020-07-25 21:43:14 · 222 阅读 · 0 评论 -
Leetcode 124. 二叉树的最大路径和【递归】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。解题报告以某一子树的根节点为研究对象,如果最大路径经过该子树,则必定 经过该子树的根节点以及该子树 左右子树 中的某一子树。实现时:设置全局变量 val,它记录了整棵树的最大路径和。递归搜索每棵子树的根节点,其返回经过该子树根节点的的最大路径和【该路径只经过该子树的某一子树】。在递归的过程中,更原创 2020-06-27 17:39:01 · 467 阅读 · 1 评论 -
不同的二叉搜索树系列 【递归】
文章目录Leetcode 96. 不同的二叉搜索树问题描述解题报告实现代码Leetcode 95. 不同的二叉搜索树 II问题描述解题报告实现代码总结参考资料Leetcode 96. 不同的二叉搜索树问题描述给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?解题报告完全模仿 Leetcode 95 来实现的。实现代码class Solution {public: int helper(int start,int end){ int ret=0;原创 2020-06-26 14:27:11 · 295 阅读 · 0 评论 -
Leetcode 剑指 Offer 09. 用两个栈实现队列【数据结构设计】
文章目录问题描述解题报告实现代码参考资料问题描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]解题报告数据入队列时,将数据压入栈 1 中;原创 2020-06-25 20:53:13 · 248 阅读 · 0 评论 -
石子游戏系列【博弈论+动态规划】
文章目录Leetcode 877.石子游戏问题描述解题报告实现代码Leetcode 1140. 石子游戏 II问题描述解题报告实现代码Leetcode 1406. 石子游戏 III问题描述解题报告实现代码总结参考资料Leetcode 877.石子游戏问题描述亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。原创 2020-06-25 20:21:37 · 1060 阅读 · 1 评论 -
Leetcode 1483. 树节点的第 K 个祖先【倍增法】
文章目录问题描述解题报告实现代码参考资料问题描述给你一棵树,树上有 n 个节点,按从 0 到 n-1 编号。树以父节点数组的形式给出,其中 parent[i] 是节点 i 的父节点。树的根节点是编号为 0 的节点。请你设计并实现 getKthAncestor(int node, int k) 函数,函数返回节点 node 的第 k 个祖先节点。如果不存在这样的祖先节点,返回 -1 。树节点的第 k 个祖先节点是从该节点到根节点路径上的第 k 个节点。输入:[“TreeAncestor”,“ge原创 2020-06-20 11:44:57 · 586 阅读 · 0 评论 -
Leetcode 1482. 制作m束花所需的最少天数【二分法】
文章目录问题描述解题报告实现代码参考资料问题描述给你一个整数数组 bloomDay,以及两个整数 m 和 k 。现需要制作 m 束花。制作花束时,需要使用花园中 相邻的 k 朵花 。花园中有 n 朵花,第 i 朵花会在 bloomDay[i] 时盛开,恰好 可以用于 一束 花中。请你返回从花园中摘 m 束花需要等待的最少的天数。如果不能摘到 m 束花则返回 -1 。示例 1:输入:bloomDay = [1,10,3,10,2], m = 3, k = 1输出:3解释:让我们一起观察这三天原创 2020-06-19 20:14:58 · 221 阅读 · 0 评论 -
Leetcode 1481. 不同整数的最少数目
文章目录问题描述解题报告实现代码参考资料问题描述给你一个整数数组 arr 和一个整数 k 。现需要从数组中恰好移除 k 个元素,请找出移除后数组中不同整数的最少数目。示例 1:输入:arr = [5,5,4], k = 1输出:1解释:移除 1 个 4 ,数组中只剩下 5 一种整数。解题报告问题的关键是对 unordered_map 按照 value 进行排序。方法是将 unordered_map 的 key 和 value 作为 pair 放到 vector 中,然后定义 pair原创 2020-06-19 19:57:51 · 273 阅读 · 0 评论 -
Leetcode 1028. 从先序遍历还原二叉树【二叉树遍历系列】
文章目录问题描述解题报告实现代码参考资料问题描述我们从二叉树的根节点 root 开始进行深度优先搜索。在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。如果节点只有一个子节点,那么保证该子节点为左子节点。给出遍历输出 S,还原树并返回其根节点 root。输入:“1-2–3--4-5–6--7”输出:[1,2,5,3,4,6,7]解题报告模拟先序遍历进行反序列化原创 2020-06-18 23:37:33 · 323 阅读 · 0 评论 -
滑动窗口系列-Leetcode 992. K 个不同整数的子数组
文章目录问题描述解题报告实现代码参考资料问题描述给定一个正整数数组 A,如果 A 的某个子数组中不同整数的个数恰好为 K,则称 A 的这个连续、不一定独立的子数组为好子数组。(例如,[1,2,3,1,2] 中有 3 个不同的整数:1,2,以及 3。)返回 A 中好子数组的数目。示例 1:输入:A = [1,2,1,2,3], K = 2输出:7解释:恰好由 2 个不同整数组成的子数组:[1,2], [2,1], [1,2], [2,3], [1,2,1], [2,1,2], [1,2,1,2原创 2020-06-18 12:08:59 · 312 阅读 · 0 评论 -
Leetcode 215. 数组中的第K个最大元素【优先队列】
文章目录问题描述解题报告实现代码参考资料问题描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5解题报告priority_queue<int,vector<int>, greater<int>>pq; 元素从小到大顺序出队的优先队列priority_queue<int> q; 元素从大到小顺序出队的原创 2020-06-14 19:11:53 · 246 阅读 · 0 评论 -
Leetcode 1300. 转变数组后最接近目标值的数组和【二分法+边界移动步长优化】
文章目录问题描述解题报告实现代码参考资料问题描述给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。如果有多种使得和最接近 target 的方案,请你返回这些整数中的最小值。请注意,答案不一定是 arr 中的数字。示例 1:输入:arr = [4,9,3], target = 10输出:3解释:当选择 value 为 3 时,数组原创 2020-06-14 18:29:32 · 246 阅读 · 0 评论 -
Leetcode 189. 旋转数组
文章目录问题描述解题报告实现代码参考资料问题描述给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]解题报告略。实现代码class Solution {public: void rotate(vect原创 2020-06-14 17:18:28 · 94 阅读 · 0 评论 -
旋转排序数组系列
文章目录Leetcode 33. 搜索旋转排序数组Leetcode 81. 搜索旋转排序数组 IILeetcode 153. 寻找旋转排序数组中的最小值Leetcode 154. 寻找旋转排序数组中的最小值 II总结参考文献Leetcode 33. 搜索旋转排序数组题目描述实现Leetcode 81. 搜索旋转排序数组 II题目描述实现Leetcode 153. 寻找旋转排序数组中的最小值题目描述实现Leetcode 154. 寻找旋转排序数组中的最小值 II题目描述实现总结在旋原创 2020-06-14 16:51:03 · 278 阅读 · 0 评论 -
Leetcode 154. 寻找旋转排序数组中的最小值 II【二分搜索】
文章目录问题描述解题报告实现代码参考资料问题描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。示例 1:输入: [1,3,5]输出: 1解题报告在 Leetcode 153. 寻找旋转排序数组中的最小值 中,元素不重复,因此可以使用 nums[l]<=nums[r] 判断 [l,r] 是否递增,如果是,nums[l] 就是最小的元原创 2020-06-14 16:37:14 · 247 阅读 · 0 评论 -
Leetcode 81. 搜索旋转排序数组 II【二分搜索】
文章目录问题描述解题报告实现代码参考资料问题描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。示例 1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true解题报告见代码。需要特别注意,当 nums[l]==nums[mid],则 l++,只能排除一个数字。原创 2020-06-14 16:03:40 · 126 阅读 · 0 评论 -
Leetcode 面试题04. 二维数组中的查找【二分搜索】
文章目录问题描述解题报告实现代码参考资料问题描述在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 ta原创 2020-06-13 13:38:55 · 209 阅读 · 0 评论 -
Leetcode 面试题44. 数字序列中某一位的数字
文章目录问题描述解题报告实现代码参考资料问题描述数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。示例 1:输入:n = 3输出:3解题报告一位数的数字有 10 个,占了 10 位二位数的数字有 90 个,占了 180 位三位数的数字有 900 个,占了 2700 位……所以解题思路是:先确定几位数 digits然后确定从 dig原创 2020-06-13 13:12:54 · 108 阅读 · 0 评论 -
Leetcode 639. 解码方法 2【空间优化的动态规划】
文章目录问题描述解题报告实现代码参考资料问题描述一条包含字母 A-Z 的消息通过以下的方式进行了编码:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26除了上述的条件以外,现在加密字符串可以包含字符 '‘了,字符’'可以被当做1到9当中的任意一个数字。给定一条包含数字和字符’*'的加密信息,请确定解码方法的总数。同时,由于结果值可能会相当的大,所以你应当对109 + 7取模。(翻译者标注:此处取模主要是为了防止溢出)示例 1 :输入: “*”输出: 9解释: 加原创 2020-06-10 11:20:07 · 267 阅读 · 0 评论 -
Leetcode 130. 被围绕的区域【BFS】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O’ 都不会被填充为 'X'。 任何不在边界上,或不与边界上的 'O' 相连的 '原创 2020-06-08 12:42:50 · 292 阅读 · 0 评论 -
Leetcode 990. 等式方程的可满足性【并查集】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!=b"。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。示例 1:输入:[“a==b”,“b!=a”]输出:false解释:如果我们指定,a = 1 且 b = 1,那么可以满足第一原创 2020-06-08 12:31:32 · 172 阅读 · 0 评论 -
Leetcode 126. 单词接龙 II【构图+BFS】
文章目录问题描述解题报告实现代码参考资料问题描述给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回一个空列表。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例原创 2020-06-07 11:50:45 · 194 阅读 · 0 评论 -
Leetcode 127. 单词接龙【构图+BFS】
文章目录问题描述解题报告实现代码参考资料问题描述给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。所有单词具有相同的长度。所有单词只由小写字母组成。字典中不存在重复的单词。你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例 1:输入:be原创 2020-06-07 11:33:57 · 264 阅读 · 0 评论 -
Leetcode 面试题31. 栈的压入、弹出序列【栈相关】
文章目录问题描述解题报告实现代码参考资料问题描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1),原创 2020-06-04 14:02:37 · 154 阅读 · 0 评论 -
Leetcode 873. 最长的斐波那契子序列的长度【动态规划】
文章目录问题描述解题报告实现代码参考资料问题描述如果序列 X_1, X_2, …, X_n 满足下列条件,就说它是 斐波那契式 的:n >= 3对于所有 i + 2 <= n,都有 X_i + X_{i+1} = X_{i+2}给定一个严格递增的正整数数组形成序列,找到 A 中最长的斐波那契式的子序列的长度。如果一个不存在,返回 0 。(回想一下,子序列是从原序列 A 中派生出来的,它从 A 中删掉任意数量的元素(也可以不删),而不改变其余元素的顺序。例如, [3, 5, 8] 是原创 2020-06-04 13:56:07 · 208 阅读 · 0 评论 -
Leetcode 638. 大礼包【DFS & DFS+回溯】
文章目录问题描述解题报告实现代码参考资料问题描述在LeetCode商店中, 有许多在售的物品。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。现给定每个物品的价格,每个大礼包包含物品的清单,以及待购物品清单。请输出确切完成待购清单的最低花费。每个大礼包的由一个数组中的一组数据描述,最后一个数字代表大礼包的价格,其他数字分别表示内含的其他种类物品的数量。任意大礼包可无限次购买。示例 1:输入: [2,5], [[3,0,5],[1,2,10]], [3,2]输出: 14解释:原创 2020-06-04 13:50:42 · 249 阅读 · 0 评论 -
Leetcode 837. 新21点【动态规划】
文章目录问题描述解题报告实现代码参考资料问题描述爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少?示例 1:输入:N = 10, K = 1, W = 10输出:1.00000说明:爱丽丝得到一张卡,原创 2020-06-03 13:39:04 · 244 阅读 · 0 评论 -
单词拆分系列
文章目录Leetcode 139. 单词拆分问题描述解题报告实现代码Leetcode 140. 单词拆分 II问题描述解题报告实现代码参考资料Leetcode 139. 单词拆分问题描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输原创 2020-06-01 17:08:21 · 1232 阅读 · 0 评论