
leetcode热题
文章平均质量分 65
leetcode热题
kiugvui
这个作者很懒,什么都没留下…
展开
-
【leetcode热题】 岛屿数量
给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。原创 2024-03-24 09:00:00 · 738 阅读 · 0 评论 -
【leetcode热题】 二叉树的右视图
给定一个二叉树的root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。原创 2024-03-24 07:00:00 · 552 阅读 · 0 评论 -
【leetcode热题】打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 2 + 9 + 1 = 12。偷窃到的最高金额 = 1 + 3 = 4。给定一个代表每个房屋存放金额的非负整数数组,计算你。能够偷窃到的最高金额。原创 2024-03-23 22:55:10 · 592 阅读 · 0 评论 -
【leetcode热题】 位1的个数
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为-33输入的二进制串1输入的二进制串中,共有一位为 '1'。31输入的二进制串中,共有 31 位为 '1'。原创 2024-03-23 22:53:35 · 1152 阅读 · 0 评论 -
【leetcode热题】颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位。-3输入的二进制串表示无符号整数因此返回 964176192,其二进制表示形式为。输入的二进制串表示无符号整数 4294967293,因此返回 3221225471 其二进制表示形式为。原创 2024-03-22 12:30:00 · 864 阅读 · 0 评论 -
【leetcode热题】轮转数组
给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。向右轮转 1 步:向右轮转 2 步:向右轮转 3 步:向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]原创 2024-03-22 05:30:00 · 450 阅读 · 0 评论 -
【leetcode热题】买卖股票的最佳时机 IV
给你一个整数数组prices和一个整数k,其中prices[i]是某支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成k笔交易。也就是说,你最多可以买k次,卖k次。你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。2在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2。7。原创 2024-03-21 09:15:00 · 945 阅读 · 0 评论 -
【leetcode热题】 重复的DNA序列
由一系列核苷酸组成,缩写为'A''C''G'和'T'在研究时,识别 DNA 中的重复序列非常有用。给定一个表示的字符串s,返回所有在 DNA 分子中出现不止一次的10的序列(子字符串)。你可以按返回答案。原创 2024-03-21 09:00:00 · 2758 阅读 · 0 评论 -
【leetcode热题】 地下城游戏
恶魔们抓住了公主并将她关在了地下城dungeon的。地下城是由m x n个房间组成的二维网格。我们英勇的骑士最初被安置在的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则表示骑士将增加健康点数)。原创 2024-03-20 05:00:00 · 751 阅读 · 0 评论 -
【leetcode热题】二叉搜索树迭代器
所以我们要控制中序遍历的进程,不要让它一次性结束,如果用解法一递归的方法去遍历那就很难控制了,所以自然而然的会想到用栈模拟递归的过程。在构造函数中,对二叉树进行中序遍历,把结果保存到一个队列中,然后。解法一中我们把所有节点都保存了起来,其实没必要一次性保存所有节点,而是需要一个输出一个即可。// 返回 True。// 返回 True。// 返回 True。注意,指针初始化为一个不存在于 BST 中的数字,所以对。空间复杂度,用队列保存了所有的节点值,所以是。原创 2024-03-20 05:30:00 · 828 阅读 · 0 评论 -
【leetcode热题】 阶乘后的零
给定一个整数n,返回n!结果中尾随零的数量。提示n = 303!= 6 ,不含尾随 0n = 515!= 120 ,有一个尾随 0n = 00。原创 2024-03-19 08:15:00 · 410 阅读 · 0 评论 -
【leetcode热题】 Excel 表列序号
给你一个字符串,表示 Excel 表格中的列名称。返回该列名称对应的列序号。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28...128701。原创 2024-03-19 07:45:00 · 418 阅读 · 0 评论 -
【leetcode热题】 多数元素
我们做这样的想象,现在有来自不同阵营的多支部队,他们互为敌人。可以想象,如果某个阵营的士兵数量超过所有阵营士兵总数的一半,该阵营士兵一换一带走一个其他阵营的,最终剩下的就是该阵营的士兵了,该阵营就获胜了。现在要打仗了,所有士兵依次进入战场,如果战场上有其他阵营的士兵,他就与其中一个同归于尽。所有士兵都进入战场后,最终战场上剩下的只会是同一阵营的,而该阵营就是人数过半的那个。这道题,最直白的解法是使用一个 map 来记录各个数字出现的次数,最后取出现次数最多的作为解。的数组,找到其中的众数。原创 2024-03-18 10:15:00 · 392 阅读 · 0 评论 -
【leetcode热题】Excel表列名称
给你一个整数,返回它在 Excel 表中相对应的列名称。例如:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28..."A""AB""ZY""FXSHRXW"原创 2024-03-18 07:00:00 · 380 阅读 · 0 评论 -
【leetcode热题】 两数之和 II - 输入有序数组
给你一个下标从开始的整数数组numbers,该数组已按,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是和,则。以长度为 2 的整数数组的形式返回这两个整数的下标index1和index2。你可以假设每个输入,而且你重复使用相同的元素。你所设计的解决方案必须只使用常量级的额外空间。27[1,2]2 与 7 之和等于目标数 9。因此 index1 = 1, index2 = 2。返回 [1, 2]。2,3,4[1,3]2 与 4 之和等于目标数 6。原创 2024-03-17 07:45:00 · 381 阅读 · 0 评论 -
【leetcode热题】 分数到小数
给定两个整数,分别表示分数的分子numerator和分母,以。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回。对于所有给定的输入,答案字符串的长度小于104。原创 2024-03-17 07:00:00 · 918 阅读 · 0 评论 -
【leetcode热题】比较版本号
这里切割出来的是字符串,所以我们需要把字符串转为数字,因为字符串转数字不是这道题的重点,所以直接调用系统提供的。思路很简单,按照「点」对版本号进行切割,然后依次比较每个数字即可。所以我们可以不把字符串转为数字,而是直接用字符串比较。不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。这道题今年笔试的时候遇到好几次了,没想到竟然是。你可以假设版本字符串非空,并且只包含数字和。在正则里有特殊含义,所以我们需要进行转义。字符不代表小数点,而是用于分隔数字序列。,但是如果数字过大的话,原创 2024-03-16 21:23:02 · 734 阅读 · 0 评论 -
【leetcode热题】最大间距
给定一个无序的数组nums,返回数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回0。您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。3排序后的数组是 [1,3,6,9]其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。0数组元素个数小于 2,因此返回 0。原创 2024-03-16 21:21:08 · 1029 阅读 · 0 评论 -
【leetcode热题】相交链表
从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。由于这两个链表不相交,所以 intersectVal 必须为 0,而 skipA 和 skipB 可以是任意值。,因此,使用两个指针从 A 和 B 两个链表头部开始向后走,走到了尾部之后,再从另外一个链表的头部开始走。设链表交易部分长度为。原创 2024-03-15 08:30:00 · 1572 阅读 · 0 评论 -
【leetcode热题】最小栈
在出栈的时候,如果当前值等于最小值,则需要把最小值更新为前一个最小值。基于以上考虑,需要记录下历史上的最小值,这是一个递减的序列,且需要在序列后面加入或者删除值,这个序列的操作符合栈的特性。在此过程中,能够很轻易地发现,只需要记录下先前入栈的数中的最小值,用此最小值和当前待入栈的数比较,就可以得到当前数入栈后栈中的最小值。但是如果入栈和出栈穿插进行,如果最小值被出栈了,那么栈中余下的数中最小值就不得而知了。的栈顶保存的是目前最小栈中的最小值,基于该最小值与新插入的值进行比较,就可以决定是否插入新的最小值。原创 2024-03-14 08:15:00 · 340 阅读 · 0 评论 -
【leetcode热题】寻找旋转排序数组中的最小值 II
首先举两个例子,下图中左边两幅是非递减数组绘制的图像,右边是旋转后绘制的图像。原数组中最小的值,其实就是右半边的左端点。特殊情况二:如果左右两边相等的元素数量相,那么循环完毕后 lo 就是右半边的左端点。既然是排序后的数组,虽然经过了旋转,但是直觉还是告诉我要使用二分查找。特殊情况一:如果数组中所有元素的值都相同,那么 lo 就会一直增加,最终越界。啊,因为右侧的右端点可能和左侧左端点的值相同。和左半段左端点比较,如果落在左半段,那么。我们的目标是找到右边部分的左端点。注意数组中可能存在重复的元素。原创 2024-03-09 16:33:35 · 432 阅读 · 0 评论 -
【leetcode热题】寻找旋转排序数组中的最小值
已知一个长度为n的数组,预先按照升序排列,经由1到n次后,得到输入数组。例如,原数组47注意,数组的结果为数组。给你一个元素值的数组nums,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的。你必须设计一个时间复杂度为O(log n)的算法解决此问题。1原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。0原数组为 [0,1,2,4,5,6,7] ,旋转 3 次得到输入数组。11原数组为 [11,13,15,17] ,旋转 4 次得到输入数组。原创 2024-03-14 05:15:00 · 2539 阅读 · 0 评论 -
【leetcode热题】乘积最大子数组
给你一个整数数组nums,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个整数。6子数组 [2,3] 有最大乘积 6。0结果不能为 2, 因为 [-2,-1] 不是子数组。原创 2024-03-13 10:00:00 · 1406 阅读 · 0 评论 -
【leetcode热题】反转字符串中的单词
给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。s = "反转后的字符串中不能存在前导空格和尾随空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。原创 2024-03-13 05:30:00 · 409 阅读 · 0 评论 -
【leetcode热题】逆波兰表达式求值
每个运算对象可以是整数,也可以是另一个逆波兰表达式。原创 2024-03-12 08:00:00 · 394 阅读 · 0 评论 -
【leetcode热题】直线上最多的点数
给你一个数组points,其中表示平面上的一个点。求最多有多少个点在同一条直线上。34。原创 2024-03-12 05:30:00 · 1738 阅读 · 0 评论 -
【leetcode热题】排序链表
给你链表的头结点head,请将其按排列并返回。原创 2024-03-11 06:15:00 · 720 阅读 · 0 评论 -
【leetcode热题】对链表进行插入排序
给定单个链表的头head,使用对链表进行排序,并返回排序后链表的头。下面是插入排序算法的一个图形示例。部分排序的列表(黑色)最初只包含列表中的第一个元素。每次迭代时,从输入数据中删除一个元素(红色),并就地插入已排序的列表中。对链表进行插入排序。[1,2,3,4]原创 2024-03-11 07:00:00 · 775 阅读 · 0 评论 -
【leetcode热题】LRU缓存机制
如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据值,从而为新的数据值留出空间。LRUCache cache = new LRUCache( 2 /* 缓存容量 */ );- 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。// 该操作会使得密钥 2 作废。// 该操作会使得密钥 1 作废。// 返回 -1 (未找到)cache.get(1);// 返回 -1 (未找到)cache.get(1);原创 2024-03-10 07:45:00 · 418 阅读 · 0 评论 -
【leetcode热题】 二叉树的后序遍历
给你一棵二叉树的根节点root,返回其节点值的。原创 2024-03-10 08:00:00 · 958 阅读 · 0 评论 -
【leetcode热题】二叉树的前序遍历
是保存在调用栈上的,因此在迭代的写法中,需要将。递归算法很简单,你可以通过迭代算法完成吗?观察递归解法,递归调用的第一层就访问。给定一个二叉树,返回它的。原创 2024-03-09 10:30:00 · 356 阅读 · 0 评论 -
【leetcode热题】重排链表
给定一个单链表L的头节点head,单链表L表示为:请将其重新排列后变为:不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。[1,4,2,3]原创 2024-03-09 05:00:00 · 519 阅读 · 0 评论 -
【leetcode热题】环形链表 II
给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回。来表示链表尾连接到链表中的位置(索引从 0 开始)。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。为了表示给定链表中的环,我们使用整数。你是否可以不用额外空间解决此题?,则在该链表中没有环。不允许修改给定的链表。原创 2024-03-08 08:00:00 · 420 阅读 · 0 评论 -
【leetcode热题】环形链表
如果链表中某个节点为 null 则必定无环,如果有环则快慢指针必定相交。来表示链表尾连接到链表中的位置(索引从 0 开始)。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。为了表示给定链表中的环,我们使用整数。给定一个链表,判断链表中是否有环。(即,常量)内存解决此问题吗?,则在该链表中没有环。原创 2024-03-08 06:30:00 · 767 阅读 · 0 评论 -
【leetcode热题】单词拆分 II
在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。注意你可以重复使用字典中的单词。原创 2024-03-07 06:00:00 · 388 阅读 · 0 评论 -
【leetcode热题】单词拆分
其思想是,在字典中寻找字符串的前缀,然后移除前缀,继续寻找前缀。直到最后字符串为空时,认为字典里的单词可以构成该字符串。整个字符串是由多个单词拼接而成的,这些单词的拼接组合构成了一颗巨大的树。如果有一条路径上的单词可以构成该字符串,则说明有解。下面的代码中,从下标 0 开始,寻找前缀字符串,然后将结尾下标入队列,下一次取出该值作为新的起始下标。是否可以被空格拆分为一个或多个在字典中出现的单词。均可以由字典中的单词组成,那么整个字符串。注意你可以重复使用字典中的单词。也就可以由字典中单词组成。原创 2024-03-07 06:45:00 · 381 阅读 · 0 评论 -
【leetcode热题】复制带随机指针的链表
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。先把所有节点拷贝一份,然后再把拷贝的节点串起来。复制链表中的每个节点,把该节点插入到原节点的后面。要求返回这个链表的深度拷贝。复制完了之后,修改指针的指向。使用原节点的地址作为。原创 2024-03-06 07:30:00 · 357 阅读 · 0 评论 -
【leetcode热题】只出现一次的数字 II
整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。当一个数出现三次的时候,如果能够通过某种方式将其抵消掉,这样就可以保留下只出现过一次的数了。你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?原创 2024-03-06 07:00:00 · 681 阅读 · 0 评论 -
【leetcode热题】只出现一次的数字
整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?原创 2024-03-05 06:45:00 · 658 阅读 · 0 评论 -
【leetcode热题】分发糖果
n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。1请你给每个孩子分发糖果,计算并返回需要准备的。5你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。4你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。原创 2024-03-05 06:00:00 · 929 阅读 · 0 评论