
LeetCode
淡 默
游戏,最大的害人之处是:你在快乐的浪费时间,丝毫感觉不到浪费的危害。
展开
-
Leetcode 面试题 02.07. 链表相交
给你两个单链表的头节点headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:Intersected at ..原创 2021-10-14 23:17:34 · 242 阅读 · 0 评论 -
LeetCode 面试题 02.02. 返回倒数第 k 个节点
实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 注意:本题相对原题稍作改动 示例: 输入: 1->2->3->4->5 和 k = 2 输出: 4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/kth-node-from-end-of-list-lcci 解题思路: 看到这道题第一个想法就是将所有的节点的值都用列表存储起来,然后再返回倒数第K个数,这个思路比较简单直接;后面看了别人的解题思路可原创 2021-10-12 22:29:44 · 264 阅读 · 0 评论 -
LeetCode 275.H指数 II
给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列。编写一个方法,计算出研究者的 h 指数。 h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。(其余的N - h篇论文每篇被引用次数不多于 h 次。)" 示例: 输入: citations = [0,1,3,5,6] 输出: 3 解释: 给定数组表示研究者总共有 5 篇论文,每篇论文相...原创 2021-07-13 00:06:17 · 261 阅读 · 0 评论 -
LeetCode 5793.迷宫中入口最近的出口
给你一个m x n的迷宫矩阵maze(下标从 0 开始),矩阵中有空格子(用'.'表示)和墙(用'+'表示)。同时给你迷宫的入口entrance,用entrance = [entrancerow, entrancecol]表示你一开始所在格子的行和列。 每一步操作,你可以往 上,下,左 或者 右移动一个格子。你不能进入墙所在的格子,你也不能离开迷宫。你的目标是找到离entrance最近的出口。出口的含义是maze边界上的空格子。entrance格子不算出口。...原创 2021-07-11 23:27:11 · 480 阅读 · 2 评论 -
LeetCode 402.移掉K位数字
给你一个以字符串表示的非负整数num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。 示例 1 : 输入:num = "1432219", k = 3 输出:"1219" 解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。 示例 2 : 输入:num = "10200", k = 1 输出:"200" 解释:移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。 示例 3 : 输入:num = "1..原创 2021-07-02 23:57:45 · 364 阅读 · 2 评论 -
LeetCode 340.至多包含K个不同字符的最长子串T
给定一个字符串 s ,找出至多包含 k 个不同字符的最长子串 T。 示例 1: 输入: s = "eceba", k = 2 输出: 3 解释: 则 T 为 "ece",所以长度为 3。 示例 2: 输入: s = "aa", k = 1 输出: 2 解释: 则 T 为 "aa",所以长度为 2。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-substring-with-at-most-k-distinct-charac..原创 2021-06-23 15:32:15 · 402 阅读 · 0 评论 -
LeetCode 3.无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pw...原创 2021-06-20 23:06:15 · 156 阅读 · 1 评论 -
LeetCode 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 = [...原创 2021-06-16 11:17:12 · 280 阅读 · 0 评论 -
LeetCode 684.冗余连接
在本问题中, 树指的是一个连通且无环的无向图。 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。 结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v],满足u < v,表示连接顶点u和v的无向图的边。 返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边[u, v] 应满足相同的格式u < ...原创 2021-06-15 16:29:34 · 203 阅读 · 0 评论 -
LeetCode 84.柱状图中最大的矩形
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为[2,1,5,6,2,3]。 图中阴影部分为所能勾勒出的最大矩形面积,其面积为10个单位。 示例: 输入: [2,1,5,6,2,3] 输出: 10 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/largest-recta...原创 2021-06-12 17:44:35 · 174 阅读 · 0 评论 -
LeetCode.901 股票价格跨度
编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。 今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。 例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票跨度将是 [1, 1, 1, 2, 1, 4, 6]。 示例: 输入:["StockSpanner","next","next","next","next","next","next","next"],.原创 2021-06-03 17:37:04 · 242 阅读 · 0 评论 -
LeetCode.739 每日温度
请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用0 来代替。 例如,给定一个列表temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是[1, 1, 4, 2, 1, 1, 0, 0]。 提示:气温 列表长度的范围是[1, 30000]。每个气温的值的均为华氏度,都是在[30, 100]范围内的整数。 来源:力扣(LeetCode) 链接:ht...原创 2021-06-01 20:52:42 · 119 阅读 · 0 评论 -
LeetCode 695.岛屿的最大面积
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/max-area-of-island 给定一个包含了一些 0 和 1 的非空二维数组grid 。 一个岛屿是由一些相邻的1(代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设grid 的四个边缘都被 0(代表水)包围着。 找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。) 示例 1: [[0,0,1,0,0,0,...原创 2020-11-14 17:25:16 · 164 阅读 · 0 评论 -
LeetCode 54.螺旋矩阵
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/spiral-matrix 给定一个包含m x n个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] 示例2: 输入: [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11...原创 2020-11-10 19:51:17 · 167 阅读 · 0 评论 -
LeetCode 46.全排列
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/permutations 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 解题思路:首先注意到题目中给定的是没有重复数字的序列,所以我们可以每次都选择序列的第一个数字,然后进行回溯直到序列中没有数据,但是因为py...原创 2020-11-03 20:16:31 · 905 阅读 · 0 评论 -
LeetCode 93.复原IP地址
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/restore-ip-addresses 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导0),整数之间用'.'分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是有效的IP 地址,但是 "0.011.255.245"、"192.168.1.312"...原创 2020-10-26 20:56:37 · 140 阅读 · 0 评论 -
LeetCode 221.最大正方形
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximal-square 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 解题思路:看到这道题我的第一个想法是首先将所有的1和0进行分割,划分成为不同的堆,其中1和1之间只要有相连就划分为一个堆(相连表示在水平或者垂直方向是相连的),然后再在1.原创 2020-10-21 20:03:28 · 171 阅读 · 0 评论 -
LeetCode 55.跳跃游戏
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/jump-game 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 示例2: 输入: [3,2,1,0,4] 输出: fal...原创 2020-10-21 19:17:26 · 117 阅读 · 0 评论 -
二叉树的前序、中序、后序三种遍历算法
首先简单介绍一下这三种遍历算法的主要思想: 前序遍历:根节点——左子树——右子树 中序遍历:左子树——根节点——右子树 后序遍历:左子树——右子树——根节点 接下来分递归和非递归两种方式来介绍这三种遍历算法,对于前序遍历有: 递归算法: class Solution: def preorderTraversal(self, root: TreeNode) -> List[int]: ans = [] self.iteration(root, ans原创 2020-09-07 21:50:20 · 1467 阅读 · 0 评论 -
LeetCode 127. 单词接龙
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/word-ladder 给定两个单词(beginWord和 endWord)和一个字典,找到从beginWord 到endWord 的最短转换序列的长度。转换需遵循如下规则: 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。 说明: 如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWo...原创 2020-08-19 20:14:17 · 274 阅读 · 0 评论 -
LeetCode 696. 计数二进制子串
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/count-binary-substrings 给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。 重复出现的子串要计算它们出现的次数。 示例 1 : 输入: "00110011" 输出: 6 解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。 请注意,.原创 2020-08-11 20:15:16 · 164 阅读 · 0 评论 -
LeetCode 337. 打家劫舍 III
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/house-robber-iii 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。 计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。 示例原创 2020-08-06 20:42:52 · 136 阅读 · 0 评论 -
LeetCode 113. 路径总和 II
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/path-sum-ii 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明:叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...原创 2020-08-01 11:26:58 · 262 阅读 · 0 评论 -
LeetCode 112. 路径总和
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/path-sum 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明:叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 ...原创 2020-08-01 10:17:20 · 103 阅读 · 0 评论 -
Leetcode 110. 平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树[3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回true。示例 2: 给定二叉树[1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3 3 ...原创 2020-07-31 10:18:56 · 125 阅读 · 0 评论