Top100
Puppet__
努力想变得更好
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[菜鸟训练]139. 单词拆分
题目描述:给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。示例 2:输入: s = “applepenapple”, wordDic原创 2021-06-08 16:47:28 · 218 阅读 · 0 评论 -
[菜鸟训练]438. 找到字符串中所有字母异位词
题目描述:给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例 1:输入:s: “cbaebabacd” p: “abc”输出:[0, 6]解释:起始索引等于 0 的子串是 “cba”, 它是 “abc” 的字母异位词。起始索引等于 6 的子串是 “bac”, 它是 “abc原创 2021-06-07 20:24:57 · 136 阅读 · 0 评论 -
[菜鸟训练]437. 路径总和 III
题目描述:给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3 / \ \ 3 2 11原创 2021-06-06 16:52:10 · 236 阅读 · 0 评论 -
[菜鸟训练]234. 回文链表
题目描述:请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解题思路:将其存入一个可变数组中,然后使用一对前后指针,来判断该链表是否是回文链表。当其对应的两个元素的值不等时,则说明其不是回文链表。时间复杂度O(N)空间复杂度O(N)代码:class Solution { public boolean原创 2021-06-05 13:44:08 · 128 阅读 · 0 评论 -
[菜鸟训练]236. 二叉树的最近公共祖先
题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。示例 2:输入:root = [3,5,1,6,2,0,8原创 2021-06-04 10:40:29 · 190 阅读 · 0 评论 -
[菜鸟训练]142. 环形链表 II
题目描述:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释:链表中有一个环原创 2021-06-03 17:22:06 · 162 阅读 · 0 评论 -
[菜鸟训练]141. 环形链表
题目描述:给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?示例 1:输入:head = [3,2,0,原创 2021-06-02 18:01:22 · 144 阅读 · 0 评论 -
[菜鸟训练]543. 二叉树的直径
题目描述:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。解题思路:简单搜索题目,时间复杂度O(N)遍历所有点。关于每个节点,去找其子树中最长的距离,左右孩子最长距离原创 2021-06-01 13:42:56 · 111 阅读 · 0 评论 -
[菜鸟训练]101. 对称二叉树
题目描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3进阶:你可以运用递归和迭代两种方法解决这个问题吗?解题思路:方法一:递归,时间复杂度O(n) 空间复杂度O(n)我们只需要一层一层的去判断是否是镜像对原创 2021-05-31 17:17:51 · 121 阅读 · 0 评论 -
[菜鸟训练]160. 相交链表
题目描述:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B原创 2021-05-29 17:10:17 · 121 阅读 · 0 评论 -
[菜鸟训练]105. 从前序与中序遍历序列构造二叉树
题目描述:根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 /\ 15 7解题思路:前序遍历:根左右 中序遍历:左根右我们明显的可以看出先序遍历中,一开始的元素一定是整个二叉树的根节点,从而我们把这个元素找到它在中序元素中的位置,我们就能得到该节点原创 2021-05-28 19:58:27 · 220 阅读 · 0 评论 -
[菜鸟训练]148. 排序链表
题目描述:给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围 [0, 5 * 104] 内-105 <= Node.val <=原创 2021-05-27 16:52:39 · 194 阅读 · 0 评论 -
[菜鸟训练]128. 最长连续序列
题目描述:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。进阶:你可以设计并实现时间复杂度为 O(n) 的解决方案吗?示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9提示:0 <= nums.length <= 104-109 <= nums[i原创 2021-05-25 18:28:41 · 281 阅读 · 0 评论 -
[菜鸟训练]155. 最小栈
题目描述:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,nu原创 2021-05-24 21:29:43 · 170 阅读 · 0 评论 -
[菜鸟训练]21. 合并两个有序链表
题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列解题思路:原创 2021-05-19 14:24:03 · 155 阅读 · 0 评论 -
[菜鸟训练]538. 把二叉搜索树转换为累加树
题目描述:给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例 1:输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,原创 2021-05-18 14:22:54 · 204 阅读 · 2 评论 -
[菜鸟训练]312. 戳气球
题目描述:有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。 这里的 i - 1 和 i + 1 代表和 i 相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字为 1 的气球。求所能获得硬币的最大数量。示例 1:输入:nums = [3,1,5,8]输出:167解释:原创 2021-05-17 16:34:12 · 218 阅读 · 0 评论 -
[菜鸟训练]102. 二叉树的层序遍历
题目描述:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],3/ \9 20 / \15 7返回其层序遍历结果:[[3],[9,20],[15,7]]解题思路:可以使用广搜来完成该问题。我们先将根节点添加到队列中,然后将其加入到相应的层次列表中,同时将该节点的孩子节点加到队列中,然后重复循环,直到最终遍历完所有点。代码:public class LC102原创 2021-05-14 17:59:10 · 154 阅读 · 0 评论 -
[菜鸟训练]49. 字母异位词分组
题目描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。解题思路:对于异位词的字符串来说,将他们按照从小到大的顺序排好序,他们一定是相等的串。因为异位词只是单词位置不同,字母和字母个数一模一样。所以我们不原创 2021-05-13 19:20:07 · 243 阅读 · 0 评论 -
[菜鸟训练]206. 反转链表
题目描述:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000代码:public class LC206 { //时间复杂度O(n) 空间复杂度O(1)原创 2021-05-13 16:53:59 · 152 阅读 · 0 评论 -
[菜鸟训练]238. 除自身以外数组的乘积
题目描述:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的原创 2021-05-11 10:30:44 · 126 阅读 · 0 评论 -
[菜鸟训练]39. 组合总和
题目描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]示例 2:输入:candidates = [2,3,5], target =原创 2021-05-10 09:51:36 · 141 阅读 · 0 评论 -
[菜鸟训练]48. 旋转图像
题目描述:给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13原创 2021-05-09 16:46:48 · 213 阅读 · 0 评论 -
[菜鸟训练]94. 二叉树的中序遍历
题目描述:给定一个二叉树的根节点 root ,返回它的 中序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 100代码:pu原创 2021-05-03 10:56:45 · 213 阅读 · 0 评论 -
[菜鸟训练]104. 二叉树的最大深度
题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。解题思路:dfs,递归。一直去找左右孩子节点有一个不为0的节点,直到最终找到叶子节点。对于某个节点来说,最大深度,就是它左孩子节点的最大深度+1,或者是它右孩子节点的最大深度+1。代码:public class LC10原创 2021-05-01 16:37:26 · 151 阅读 · 0 评论 -
[菜鸟训练]226.翻转二叉树
题目描述:翻转一棵二叉树。示例:输入: 4/ 2 7/ \ / 1 3 6 9输出: 4/ 7 2/ \ / 9 6 3 1解题思路:使用dfs进行层次遍历,交换该节点的左右孩子节点,直到遇到叶子节点。代码:public class LC226 { public TreeNode invertTree(TreeNode root) { if (root == null) {原创 2021-05-01 16:25:51 · 199 阅读 · 0 评论 -
[菜鸟训练]617. 合并二叉树
题目描述:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入:Tree 1 Tree 21 2/ \ / \3 2原创 2021-05-01 16:13:01 · 153 阅读 · 0 评论 -
[菜鸟训练]22. 括号生成
题目描述:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]提示:1 <= n <= 8解题思路:可以使用回溯解决该问题,再写程序的时候需要开两个计数器来记录当前串中左右括号的个数,并通过这个来进行回溯。代码:public class LC22 { //原创 2021-04-30 20:46:59 · 159 阅读 · 1 评论 -
[菜鸟训练]46. 全排列
题目描述:给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]解题思路:该题目是一个典型的回溯题,我们上来有nums.length个选择,紧接着又有nums.length-1个选择…依次下去,到最后只有一个选择,这整个过程其实就是一个树的根节点到叶子节点的过程,最后只有一个选择,即到了叶子节点。我们不妨使用dfs来进行树的遍历,但注意我们遍历后还原创 2021-04-29 20:20:38 · 127 阅读 · 0 评论 -
[菜鸟训练]42. 接雨水
题目描述:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n == height.length0 <= n <=原创 2021-04-28 16:42:47 · 172 阅读 · 0 评论 -
[菜鸟训练]494. 目标和
题目描述:给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例:输入:nums: [1, 1, 1, 1, 1], S: 3输出:5解释:-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3一共有5种方法让最终目标和原创 2021-04-27 23:31:41 · 167 阅读 · 0 评论 -
[菜鸟训练]11. 盛最多水的容器
题目描述:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:输入:he原创 2021-04-26 19:38:14 · 134 阅读 · 1 评论 -
[菜鸟训练]200. 岛屿数量
题目描述:给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0”,“0”,“0”,“0”]]输出:1示例 2:输入:grid = [[“1”,“1”,原创 2021-04-25 09:23:30 · 171 阅读 · 0 评论 -
[菜鸟训练]647. 回文子串
题目描述:给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:“abc”输出:3解释:三个回文子串: “a”, “b”, “c”示例 2:输入:“aaa”输出:6解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”提示:输入的字符串长度不会超过 1000 。代码:public class LC647 { //中心扩展,时间复杂度O(n^原创 2021-04-24 13:24:19 · 156 阅读 · 0 评论 -
[菜鸟训练]406. 根据身高重建队列
题目描述:假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。示例 1:输入:people = [[7,0],[4原创 2021-04-23 17:01:48 · 199 阅读 · 0 评论 -
[菜鸟训练]347. 前 K 个高频元素
题目描述:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 105k 的取值范围是 [1, 数组中不相同的元素的个数]题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的进阶:你所设计算法的时原创 2021-04-22 12:20:35 · 350 阅读 · 0 评论 -
[菜鸟训练]560. 和为K的子数组
题目描述:给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。题目解析:注意题目给出的是找和为k连续的子数组的个数,然后发现数组长度为[1,20000],所以我们可以直接暴力,枚举其全部情况,然后判断原创 2021-04-21 15:37:23 · 255 阅读 · 0 评论 -
[菜鸟训练]416. 分割等和子集
题目描述:给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。提示:1 <= nums.length <= 2001 <= nums[i] <= 100解题思路:转原创 2021-04-20 17:59:14 · 210 阅读 · 0 评论 -
[菜鸟训练]55. 跳跃游戏
题目描述:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后原创 2021-04-19 16:47:52 · 186 阅读 · 0 评论 -
[菜鸟训练]322. 零钱兑换
题目描述:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:coins = [1], amount = 0输出:原创 2021-04-18 16:24:27 · 125 阅读 · 0 评论
分享