
leetcode
一只积累鸭
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【leetcode-44】621. 任务调度器
题目描述给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的最短时间。示例 :输入:tasks = [“A”,“A”,“A”,“B”,“原创 2020-10-24 15:41:33 · 257 阅读 · 0 评论 -
【leetcode-43】【dfs】207. 课程表
题目描述你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,1]]输出: fals原创 2020-10-16 16:11:36 · 121 阅读 · 0 评论 -
【leetcode-42】【并查集】399. 除法求值
题目描述给出方程式 A / B = k, 其中 A 和 B 均为用字符串表示的变量, k 是一个浮点型数字。根据已知方程式求解问题,并返回计算结果。如果结果不存在,则返回 -1.0。输入总是有效的。你可以假设除法运算中不会出现除数为 0 的情况,且不存在任何矛盾的结果。示例 1:输入:equations = [[“a”,“b”],[“b”,“c”]], values = [2.0,3.0], queries = [[“a”,“c”],[“b”,“a”],[“a”,“e”],[“a”,“a”],[“x原创 2020-10-14 14:21:40 · 214 阅读 · 1 评论 -
【Kick Start】ATM Queue
题目思路这题的思路是从前往后一次遍历,判断出每个人需要排队几次才可以取完钱。 按照排队的次数,有序按照index排列一开始想到用hashmap存储,key是排队次数,value是人员编号的list但是前一阵还总结了TreeMap是一种按照key有序存储的结构,所以这里用TreeMap,key是排队次数,value是人员编号的list队次数应该用(要取的钱 - 1) / 次可取的最大钱数,这里一定要减一,如果不减一的话,当要取的钱等于可取的最大钱数的时候,排队的次数就是1次了,其实应该是0次。最后原创 2020-09-27 16:02:21 · 213 阅读 · 2 评论 -
【leetcode-41】【DFS / BFS / 并查集】130.被围绕的区域
题目描述给定一个二维的矩阵,包含 ‘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’ 相连的 ‘O’ 最终都会被填充为 ‘X’。如果两个元素在水平原创 2020-06-27 17:13:35 · 420 阅读 · 0 评论 -
合并n个升序链表
题目描述N个升序链表合并为一个升序的链表我的答案import java.util.Scanner;class Node{ int val; Node next; public Node(int val){ this.val = val; }}public class Main { private PriorityQueue<Node> minHeap; public Node mergeList(List<Node原创 2020-06-12 19:31:30 · 533 阅读 · 0 评论 -
扑克牌大小
题目描述扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王):3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER输入两手牌,两手牌之间用"-“连接,每手牌的每张牌以空格分隔,”-"两边没有空格如:4 4 4 4-joker JOKER。请比较两手牌大小,输出较大的牌,如果不存在比较关系则输出ERROR。基本规则:输入每手牌可能是个原创 2020-06-12 19:04:11 · 729 阅读 · 0 评论 -
【kick start-1】Round C 2020 - Kick Start 2020
第一次成功参赛Kick Start,排名感人,后面会好的!!!ProblemAvery has an array of N positive integers. The i-th integer of the array is Ai.A contiguous subarray is an m-countdown if it is of length m and contains the integers m, m-1, m-2, …, 2, 1 in that order. For example.原创 2020-05-19 13:04:01 · 294 阅读 · 0 评论 -
【leetcode-40】【贪心系列】1282. 用户分组
题目描述有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组。给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返回用户分组情况(存在的用户组以及每个组中用户的 ID)。你可以任何顺序返回解决方案,ID 的顺序也不受限制。此外,题目给出的数据保证至少存在一种解决方案。示例 1:输入:groupSizes = [3,3,3,3,3,1,3]输出:[[5],[0,1,2],[3,4,6]]解释:其他可能的解决方案有原创 2020-05-16 22:59:04 · 229 阅读 · 0 评论 -
【leetcode-39】【二分系列】面试题 10.03. 搜索旋转数组
题目描述有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上。出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一点。已知马戏团每个人的身高和体重,请编写代码计算叠罗汉最多能叠几个人。示例:输入:height = [65,70,56,75,60,68] weight = [100,150,90,190,95,110]输出:6解释:从上往下数,叠罗汉最多能叠 6 层:(56,90), (60,95), (65,100), (68,110), (70,150), (75,190)来源原创 2020-05-16 21:24:23 · 324 阅读 · 0 评论 -
【leetcode-38】【二分系列】面试题 17.08. 马戏团人塔
题目描述有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上。出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一点。已知马戏团每个人的身高和体重,请编写代码计算叠罗汉最多能叠几个人。示例:输入:height = [65,70,56,75,60,68] weight = [100,150,90,190,95,110]输出:6解释:从上往下数,叠罗汉最多能叠 6 层:(56,90), (60,95), (65,100), (68,110), (70,150), (75,190)来源原创 2020-05-16 18:25:50 · 466 阅读 · 0 评论 -
【leetcode-37】【二分系列】300. 最长上升子序
题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-in原创 2020-05-15 12:56:31 · 188 阅读 · 0 评论 -
【leetcode-36】【二分系列】面试题 10.09. 排序矩阵查找
前言刷了那么多题,昨天竟然被问住了!!耻辱啊!!!!今天起刷题flag复活!!!!题目描述给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。示例:现有矩阵 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]]给定 target = 5,返回 true。给定 target = 20,返回原创 2020-05-13 12:48:27 · 236 阅读 · 0 评论 -
【leetcode-35】【二分系列】面试题53 - II. 0~n-1中缺失的数字
前言刷了那么多题,昨天竟然被问住了!!耻辱啊!!!!今天起刷题flag复活!!!!题目描述一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路二分查找,缩原创 2020-05-13 12:30:17 · 250 阅读 · 1 评论 -
【leetcode-32】347. 前 K 个高频元素
题目描述给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小...原创 2020-02-16 22:47:43 · 141 阅读 · 0 评论 -
【leetcode-31】236. 二叉树的最近公共祖先
题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,...原创 2020-02-16 22:29:36 · 143 阅读 · 0 评论 -
【leetcode-30】5343. 多次求和构造目标数组
题目描述给你一个整数数组 target 。一开始,你有一个数组 A ,它的所有元素均为 1 ,你可以执行以下操作:令 x 为你数组里所有元素的和选择满足 0 <= i < target.size 的任意下标 i ,并让 A 数组里下标为 i 处的值为 x 。你可以重复该过程任意次如果能从 A 开始构造出目标数组 target ,请你返回 True ,否则返回 False 。...原创 2020-02-16 22:20:47 · 285 阅读 · 0 评论 -
【leetcode-29】5341. 最后 K 个数的乘积
题目描述请你实现一个「数字乘积类」ProductOfNumbers,要求支持下述两种方法:add(int num)将数字 num 添加到当前数字列表的最后面。2. getProduct(int k)返回当前数字列表中,最后 k 个数字的乘积。你可以假设当前列表中始终 至少 包含 k 个数字。题目数据保证:任何时候,任一连续数字序列的乘积都在 32-bit 整数范围内,不会溢出。...原创 2020-02-16 22:11:29 · 262 阅读 · 0 评论 -
【leetcode-28】5340. 统计有序矩阵中的负数
题目描述给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。请你统计并返回 grid 中 负数 的数目。示例 1:输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]输出:8解释:矩阵中共有 8 个负数。示例 2:输入:grid = [[3,2],[1,0]]输出:0示例 ...原创 2020-02-16 22:00:45 · 209 阅读 · 0 评论 -
【leetcode-27】62. 不同路径
题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -&g...原创 2020-02-16 21:57:02 · 124 阅读 · 0 评论 -
【leetcode-26】739. 每日温度
题目描述根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个...原创 2020-02-16 21:48:35 · 236 阅读 · 0 评论 -
【leetcode-25】647. 回文子串
题目描述给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: “abc”输出: 3解释: 三个回文子串: “a”, “b”, “c”.示例 2:输入: “aaa”输出: 6说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa”.注意:输...原创 2020-02-13 16:47:27 · 114 阅读 · 0 评论 -
【leetcode-24】102. 二叉树的层次遍历
题目描述给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-t...原创 2020-02-13 16:33:17 · 114 阅读 · 0 评论 -
【leetcode-23】215. 数组中的第K个最大元素
题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem...原创 2020-02-13 16:30:33 · 115 阅读 · 0 评论 -
【leetcode-22】11. 盛最多水的容器
题目描述给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2...原创 2020-02-13 16:22:53 · 194 阅读 · 0 评论 -
【leetcode-21】287. 寻找重复数
题目描述给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2...原创 2020-02-13 16:14:58 · 182 阅读 · 0 评论 -
【leetcode-20】148. 排序链表(还有未学习的)
题目描述在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5来源:力扣(LeetCode)链接:https://leetcode...原创 2020-02-13 16:05:32 · 132 阅读 · 0 评论 -
【leetcode-19】64. 最小路径和
题目描述给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/m...原创 2020-02-13 15:53:35 · 183 阅读 · 0 评论 -
【leetcode-18】96. 不同的二叉搜索树(还有未学习的)
题目描述给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / / / \ 3 2 1 1 3 2/ / \ ...原创 2020-02-13 15:39:25 · 120 阅读 · 0 评论 -
【leetcode-17】48. 旋转图像
题目描述给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 ma...原创 2020-02-13 12:48:31 · 179 阅读 · 0 评论 -
【leetcode-16】114. 二叉树展开为链表
题目描述给定一个二叉树,原地将它展开为链表。例如,给定二叉树1/ 2 5/ \ 3 4 6将其展开为:1\2\ 3\ 4\ 5\ 6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list著作权归领扣网络所有。商业转载...原创 2020-02-13 12:40:26 · 118 阅读 · 0 评论 -
【leetcode-15】39. 组合总和
题目描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:...原创 2020-02-13 12:22:45 · 140 阅读 · 0 评论 -
【leetcode-14】1347. 制造字母异位词的最小步骤数
题目描述给你两个长度相等的字符串 s 和 t。每一个步骤中,你可以选择将 t 中的 任一字符 替换为 另一个字符。返回使 t 成为 s 的字母异位词的最小步骤数。字母异位词 指字母相同,但排列不同的字符串。示例 1:输出:s = “bab”, t = “aba”输出:1提示:用 ‘b’ 替换 t 中的第一个 ‘a’,t = “bba” 是 s 的一个字母异位词。示例 2:输出:s...原创 2020-02-13 12:01:10 · 241 阅读 · 0 评论 -
【leetcode-13】1346. 检查整数及其两倍数是否存在
题目描述给你一个整数数组 arr,请你检查是否存在两个整数 N 和 M,满足 N 是 M 的两倍(即,N = 2 * M)。更正式地,检查是否存在两个下标 i 和 j 满足:i != j0 <= i, j < arr.lengtharr[i] == 2 * arr[j]示例 1:输入:arr = [10,2,5,3]输出:true解释:N = 10 是 M = 5 的...原创 2020-02-13 09:12:28 · 217 阅读 · 0 评论 -
【leetcode-12】22. 括号生成
题目描述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-parentheses著作权归...原创 2020-02-06 16:32:38 · 145 阅读 · 0 评论 -
【leetcode-11】198. 打家劫舍
题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷...原创 2020-02-05 23:37:47 · 127 阅读 · 0 评论 -
【leetcode-10】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说明:如果你可以运用递归和迭代两种方法解决这个问题,会很加分。来源:力扣(LeetCode)链接:h...原创 2020-02-05 22:25:03 · 155 阅读 · 0 评论 -
【leetcode-9】581. 最短无序连续子数组
题目描述给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 :输入的数组长度范围在 [1, 10,000]。输...原创 2020-02-05 21:24:39 · 276 阅读 · 2 评论 -
【leetcode-8】121. 买卖股票的最佳时机
题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意...原创 2020-02-04 22:47:50 · 128 阅读 · 0 评论 -
【leetcode-7】437. 路径总和 III
题目描述给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 81...原创 2020-02-04 21:27:02 · 126 阅读 · 0 评论