
LeetCode
宇zzZ
简介,呃,小白一枚
展开
-
LeetCode每日一题2023年8月27日
【代码】LeetCode每日一题2023年8月27日。原创 2023-08-27 15:58:29 · 352 阅读 · 0 评论 -
LeetCode 887. 鸡蛋掉落(4.11打卡)
题目鸡蛋掉落你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 ...原创 2020-04-11 11:32:47 · 205 阅读 · 0 评论 -
LeetCode 151. 翻转字符串里的单词——几个字母差别节省近一半运行时间(4.10打卡)
题目翻转字符串里的单词给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: “a good exam...原创 2020-04-10 13:50:50 · 145 阅读 · 0 评论 -
LeetCode 22. 括号生成(4.9打卡)
题目括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]代码class Solution { static List<String> list; public static ...原创 2020-04-09 22:36:12 · 105 阅读 · 0 评论 -
LeetCode 面试题13. 机器人的运动范围(4.8打卡)
题目面试题13. 机器人的运动范围地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+...原创 2020-04-08 20:38:41 · 257 阅读 · 0 评论 -
LeetCode 面试题 01.07. 旋转矩阵(4.7打卡)
题目面试题 01.07. 旋转矩阵给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 matrix...原创 2020-04-07 10:36:38 · 417 阅读 · 0 评论 -
LeetCode 42. 接雨水(4.4打卡)
题目接雨水给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6代码(又是抄作业的一天,唉...原创 2020-04-04 11:22:33 · 113 阅读 · 0 评论 -
LeetCode 8. 字符串转换整数 (atoi)(打卡第三十四天)
题目字符串转换整数 (atoi)请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串...原创 2020-04-04 10:23:12 · 107 阅读 · 0 评论 -
LeetCode 289. 生命游戏(打卡第三十三天)
题目生命游戏根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞数少于两...原创 2020-04-02 10:00:14 · 138 阅读 · 0 评论 -
LeetCode 1111. 有效括号的嵌套深度(打卡第三十二天)
题目(读题两小时,代码5分钟系列)有效括号的嵌套深度有效括号字符串 定义:对于每个左括号,都能找到与之对应的右括号,反之亦然。详情参见题末「有效括号字符串」部分。嵌套深度 depth 定义:即有效括号字符串嵌套的层数,depth(A) 表示有效括号字符串 A 的嵌套深度。详情参见题末「嵌套深度」部分。给你一个「有效括号字符串」 seq,请你将其分成两个不相交的有效括号字符串,A 和 B...原创 2020-04-01 16:06:28 · 173 阅读 · 0 评论 -
LeetCode 912. 排序数组(打卡第三十一天)
题目排序数组给定一个整数数组 nums,将该数组升序排列。示例 1:输入:[5,2,3,1]输出:[1,2,3,5]示例 2:输入:[5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= A.length <= 10000-50000 <= A[i] <= 50000解题思路经典快排递归的对数组进行分组排序根据栓柱(其实就...原创 2020-03-31 10:01:51 · 130 阅读 · 0 评论 -
LeetCode 面试题62. 圆圈中最后剩下的数字(打卡第三十天)
题目面试题62. 圆圈中最后剩下的数字0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10,...原创 2020-03-30 13:47:10 · 172 阅读 · 0 评论 -
LeetCode 1162. 地图分析(打卡第二十九天)
题目地图分析你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。我们这里说的距离是『曼哈顿距离』( Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个区域之间的...原创 2020-03-29 22:45:23 · 121 阅读 · 0 评论 -
LeetCode 820. 单词的压缩编码(打卡第二十八天)
题目单词的压缩编码给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。例如,如果这个列表是 [“time”, “me”, “bell”],我们就可以将其表示为 S = “time#bell#” 和 indexes = [0, 2, 5]。对于每一个索引,我们可以通过从字符串 S 中索引的位置开始读取字符串,直到 “#” 结束,来恢复我们之前的单词列表。那么成...原创 2020-03-28 12:42:22 · 268 阅读 · 0 评论 -
LeetCode 914. 卡牌分组(打卡第二十七天)——两种方法(暴力法+最大公约数法)
题目卡牌分组给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例 1:输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]示例 2:...原创 2020-03-27 11:15:32 · 186 阅读 · 0 评论 -
LeetCode 999. 车的可用捕获量(打卡第二十六天)
题目车的可用捕获量在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝那个方向移动,直到它选择停止、到达棋盘的边缘或移动到同一方格来捕获该方格上颜色相...原创 2020-03-26 17:00:57 · 120 阅读 · 0 评论 -
LeetCode 892. 三维形体的表面积(打卡第二十五天)
题目三维形体的表面积在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。请你返回最终形体的表面积。示例 1:输入:[[2]]输出:10示例 2:输入:[[1,2],[3,4]]输出:34示例 3:输入:[[1,0],[0,2]]输出:16示例 4:输入:...原创 2020-03-25 11:39:46 · 140 阅读 · 0 评论 -
LeetCode 面试题 17.16. 按摩师(打卡第二十四天)
题目面试题 17.16. 按摩师一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4...原创 2020-03-24 22:56:21 · 106 阅读 · 0 评论 -
LeetCode 876. 链表的中间结点(打卡第二十三天)
题目链表的中间结点给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = ...原创 2020-03-23 10:14:59 · 131 阅读 · 0 评论 -
LeetCode 945. 使数组唯一的最小增量(打卡第二十二天)
题目使数组唯一的最小增量给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。返回使 A 中的每个值都是唯一的最少操作次数。示例 1:输入:[1,2,2]输出:1解释:经过一次 move 操作,数组将变为 [1, 2, 3]。示例 2:输入:[3,2,1,2,1,7]输出:6解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, ...原创 2020-03-22 22:30:43 · 119 阅读 · 0 评论 -
LeetCode 365.水壶问题(打卡第二十一天)
题目水壶问题有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。你允许:装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水,直到装满或者倒空示例 1: (From the famous “Die Hard” example)输入: x = 3...原创 2020-03-21 10:08:31 · 169 阅读 · 0 评论 -
LeetCode 面试题40. 最小的k个数(打卡第二十天)
题目面试题40. 最小的k个数输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]限制:0 <= k <= arr.len...原创 2020-03-20 12:25:43 · 110 阅读 · 0 评论 -
LeetCode 409. 最长回文串(打卡第十九天)
题目最长回文串给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。代码class Solution { ...原创 2020-03-19 11:34:59 · 116 阅读 · 0 评论 -
LeetCode 836. 矩形重叠(打卡第十八天)
题目矩形重叠矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true示例 2:...原创 2020-03-18 22:43:13 · 129 阅读 · 0 评论 -
LeetCode 1160. 拼写单词(打卡第十七天)
题目拼写单词给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的 长度之和。示例 1:输入:words = [“cat”,...原创 2020-03-17 13:19:28 · 107 阅读 · 0 评论 -
LeetCode 面试题 01.06. 字符串压缩(打卡第十六天)
题目面试题 01.06. 字符串压缩字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:“aabcccccaaa”输出:“a2b1c5a3”示例2:输入:“abbccd”输出:“abbcc...原创 2020-03-16 12:34:55 · 243 阅读 · 0 评论 -
LeetCode 695. 岛屿的最大面积(打卡第十五天)
题目岛屿的最大面积给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,...原创 2020-03-15 22:08:50 · 102 阅读 · 0 评论 -
LeetCode 300. 最长上升子序列(打卡第十四天)
题目最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗...原创 2020-03-14 22:49:37 · 124 阅读 · 0 评论 -
LeetCode 169. 多数元素(打卡第十三天)
题目多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2解法思路这道题解法很多,记录了其中四种,分别是:暴力法、排序法、哈希图法和投票法暴力法:遍历前一...原创 2020-03-13 16:39:43 · 141 阅读 · 0 评论 -
LeetCode 1071. 字符串的最大公因子(打卡第十二天)
题目字符串的最大公因子对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。示例 1:输入:str1 = “ABCABC”, str2 = “ABC”输出:“ABC”示例 2:输入:str1 = “ABABAB”, str2 = ...原创 2020-03-12 13:18:58 · 144 阅读 · 0 评论 -
LeetCode 1013. 将数组分成和相等的三个部分(打卡第十一天)
题目将数组分成和相等的三个部分给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + … + A[i] == A[i+1] + A[i+2] + … + A[j-1] == A[j] + A[j-1] + … + A[A.length - 1]) 就可以将数...原创 2020-03-11 12:52:15 · 142 阅读 · 0 评论 -
LeetCode 543. 二叉树的直径(打卡第十天)
题目二叉树的直径给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。...原创 2020-03-10 22:58:14 · 243 阅读 · 0 评论 -
LeetCode 121. 买卖股票的最佳时机(打卡第九天)
题目买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-...原创 2020-03-09 15:15:04 · 98 阅读 · 0 评论 -
LeetCode 322. 零钱兑换(打卡第八天)
动态规划问题,还没有彻底搞懂,但是打卡不能断,先放这,明天继续class Solution { public int coinChange(int[] coins, int amount) { // 自底向上的动态规划 if(coins.length == 0){ return -1; } // m...原创 2020-03-09 14:02:01 · 130 阅读 · 0 评论 -
LeetCode 面试题59 - II. 队列的最大值(打卡第七天)
题目面试题59 - II. 队列的最大值请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入:[“MaxQueue”,“push_back”,“push_back”,“max_value”,“...原创 2020-03-07 11:05:51 · 143 阅读 · 0 评论 -
LeetCode 225. 用队列实现栈(打卡第一天)
LeetCode 225.用队列实现栈题目:用队列实现栈使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所...原创 2020-03-01 13:23:53 · 142 阅读 · 1 评论 -
LeetCode 206.翻转链表(打卡第二天)
LeetCode 206.翻转链表题目:反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?解题思路解法一:用最简单的方法实现链表的翻转,只需要逐个将链表的结点从原链表中“拿”出来,...原创 2020-03-02 13:24:06 · 123 阅读 · 0 评论 -
LeetCode 面试题57 - II. 和为s的连续正数序列(打卡第六天)
题目面试题57 - II. 和为s的连续正数序列输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:...原创 2020-03-06 16:59:37 · 199 阅读 · 1 评论 -
LeetCode 1103. 分糖果 II(打卡第五天)
题目:分糖果 II排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程...原创 2020-03-05 12:10:36 · 112 阅读 · 0 评论 -
LeetCode 994.腐烂的橘子(打卡第四天)
题目腐烂的橘子在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。示例 1:输入:[[2,1,1],[1,1,0],[0,1,1]]输出:4示例 2:输入:...原创 2020-03-04 13:30:54 · 139 阅读 · 0 评论