汇总:LeetCode题解
每天一道前端面试题,脱离业务,换种角度去纯粹的做做题,加油
余光、
一旦走出舒适区,你内心的痛点才是促使你前行的动力
2022年重新出发
展开
-
LeetCode题解:矩阵中战斗力最弱的 K 行
矩阵中战斗力最弱的 K 行一、题目给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。示例:输入:mat =[[1,1,0,0,0],[1,1,1,1,0],[1,0,0,0原创 2020-12-21 19:06:44 · 3007 阅读 · 3 评论 -
LeetCode题解:统计有序矩阵中的负数
统计有序矩阵中的负数一、题目给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。请你统计并返回 grid 中 负数 的数目。示例:输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]输出:8解释:矩阵中共有 8 个负数。二、题解/** * @param {number[][]} grid * @return {number} */var countNegatives原创 2020-12-21 19:05:32 · 1277 阅读 · 0 评论 -
LeetCode题解:寻找比目标字母大的最小字母
寻找比目标字母大的最小字母一、题目给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’示例:输入:letters = ["c", "f", "j"]target = "a"输出: "c"输入:letters = ["c", "f"原创 2020-12-21 19:03:46 · 1178 阅读 · 0 评论 -
LeetCode题解:有效的完全平方数
有效的完全平方数一、题目给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False题解这道题是典型的模版I分析思路在有序的“数组”中,查找指定的元素每次排除一般的查找空间/** * @param {number} num * @return {boolean} */var isPerfectSqu原创 2020-12-21 19:01:43 · 1207 阅读 · 0 评论 -
LeetCode题解:pow(x, n)
pow(x, n)一、题目实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25题解解题思路要判断 n 的正负,以确定我们的底是 x 还是 1/x经过分析 x^9 = x^4 * x^4 * x = (x^2 * x^2) * (x^2 * x^2) * x判断 n 的奇偶性,已确定是原创 2020-12-21 19:00:23 · 4776 阅读 · 5 评论 -
LeetCode题解:35.搜索插入位置
LeetCode题解:搜索插入位置,二分法题解的第一篇文章,之后我会陆续整理更多二分法的文章,结合leetcode,和大家一起掌握这个思想原创 2020-12-04 15:13:36 · 4327 阅读 · 5 评论 -
LeetCode题解:19.删除链表的倒数第N个节点
删除链表的倒数第N个节点一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定原创 2020-05-27 17:01:43 · 2299 阅读 · 0 评论 -
LeetCode题解:520.检测大写字母
检测大写字母一、LeetCode题解瞧一瞧(求star!)LeetCode题解Javascript版本:Gitbook版本传送门LeetCode题解Javascript版本:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写, 比如 “Google”原创 2020-05-21 18:42:46 · 2038 阅读 · 0 评论 -
LeetCode题解:451.根据字符出现频率排序
根据字符出现频率排序一、LeetCode题解瞧一瞧(求star!)LeetCode题解Javascript版本:Gitbook版本传送门LeetCode题解Javascript版本:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答原创 2020-05-20 17:31:39 · 2398 阅读 · 0 评论 -
LeetCode题解:387.字符串中的第一个唯一字符
字符串中的第一个唯一字符一、LeetCode题解瞧一瞧(求star!)LeetCode题解Javascript版本:Gitbook版本传送门LeetCode题解Javascript版本:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例:输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那原创 2020-05-20 16:41:31 · 1907 阅读 · 0 评论 -
LeetCode题解:389.找不同
找不同一、LeetCode题解瞧一瞧(求star!)LeetCode题解Javascript版本:Gitbook版本传送门LeetCode题解Javascript版本:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例:输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。原创 2020-05-20 16:00:29 · 1654 阅读 · 0 评论 -
LeetCode题解:137.只出现一次的数字 II
只出现一次的数字 II一、LeetCode题解瞧一瞧(求star!)LeetCode题解Javascript版本:Gitbook版本传送门LeetCode题解Javascript版本:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:原创 2020-05-18 11:46:07 · 1512 阅读 · 0 评论 -
LeetCode题解:61.旋转链表
旋转链表一、LeetCode题解瞧一瞧(求star!)LeetCode题解Javascript版本:Gitbook版本传送门LeetCode题解Javascript版本:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NUL原创 2020-05-14 16:58:09 · 1366 阅读 · 0 评论 -
LeetCode题解:430.扁平化多级双向链表
扁平化多级双向链表一、LeetCode题解瞧一瞧(求star!)LeetCode题解Javascript版本:Gitbook版本传送门LeetCode题解Javascript版本:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现原创 2020-05-11 16:21:38 · 1514 阅读 · 0 评论 -
LeetCode题解:234.回文链表
回文链表一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true解法一(快慢指针+反转链表)...原创 2020-05-07 17:16:28 · 1483 阅读 · 0 评论 -
LeetCode题解:328.奇偶链表
奇偶链表一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),...原创 2020-05-07 15:04:05 · 1482 阅读 · 0 评论 -
LeetCode题解:160.相交链表
设计链表一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果有环,则确定它的入口位置。注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构...原创 2020-05-06 17:52:32 · 1453 阅读 · 0 评论 -
LeetCode题解:142.环形链表II
设计链表一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果有环,则确定它的入口位置。思路第一阶段,我们先确定当前链表是否存在环第二阶段,如果存在环,我们要确定入口的...原创 2020-05-06 17:09:50 · 1430 阅读 · 0 评论 -
别说链表不重要(一):单链表的实现原理+JavaScript实现实战+常见操作一篇搞定
链表的原理及Js基本实现虚心接受批评和指正,互相成就,共勉!从这篇文章你会收获什么?了解单链表和双链表的基本结构;在单链表或双链表中实现遍历、插入和删除;在链表中使用双指针技巧(快慢指针技巧);解决一些经典问题,例如反转链表;目录一、链表的由来及特点二、单链表2.1、添加节点2.2、删除节点三、设计链表四、双链表2.1、添加节点2.2、删除节点2....原创 2020-04-30 17:31:11 · 1558 阅读 · 0 评论 -
LeetCode题解:504.七进制数
七进制数一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个整数,将其转化为7进制,并以字符串形式输出。示例 1:输入: 100输出: "202"示例 2:输入: -7输出: "-10"解法一 (暴力)思路判断正负、0循环取...原创 2020-04-27 14:59:09 · 1579 阅读 · 0 评论 -
LeetCode题解:1389.按既定顺序创建目标数组
按既定顺序创建目标数组一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组:目标数组 target 最初为空。按从左到右的顺序依次读取 nums[i] 和 index[i],在 t...原创 2020-04-26 16:01:42 · 1515 阅读 · 0 评论 -
LeetCode题解:1299.将每个元素替换为右侧最大元素
将每个元素替换为右侧最大元素一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。完成所有替换操作后,请你返回这个数组。示例:输入:arr = [17,18...原创 2020-04-26 15:54:56 · 529 阅读 · 0 评论 -
LeetCode题解:703.数据流中的第K大元素
数据流中的第K大元素一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,...原创 2020-04-26 10:43:40 · 660 阅读 · 0 评论 -
Leetcode题解 => 627.交换工资
交换工资一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没...原创 2020-04-24 18:00:54 · 606 阅读 · 0 评论 -
LeetCode题解 => 443.压缩字符串
压缩字符串一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门做题路线( ** = 当前阶段)阶段一(题库+每日一题(3.15日开始每天死磕))**阶段二(解题质量至上)阶段三(算法思想至上)二、算法题题目给定一组字符,使用...原创 2020-04-24 17:50:55 · 636 阅读 · 3 评论 -
JavaScript版LeetCode题解,你值得拥有
LeetCode题解Js版 https://webbj97.github.io/leetCode-Js/题外话博健的LeetCode题解:传送门前端笔记:传送门项目背景旨在提高自己对算法的理解,将题解总结成文章,有利于未来自查,也希望能对大家有所...原创 2020-04-23 18:36:26 · 3061 阅读 · 1 评论 -
LeetCode题解 => 70.爬楼梯
题目一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输...原创 2020-04-23 16:24:06 · 697 阅读 · 0 评论 -
LeetCode题解 => 83.删除排序链表中的重复元素
删除排序链表中的重复元素一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2...原创 2020-04-23 10:27:42 · 605 阅读 · 0 评论 -
LeetCode每日一题:1323.6和9组成的最大数字(九十四)
6 和 9 组成的最大数字一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给你一个仅由数字 6 和 9 组成的正整数 num。你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。请返回你可以得到的最大...原创 2020-04-22 14:03:57 · 497 阅读 · 0 评论 -
LeetCode每日一题:1299.将每个元素替换为右侧最大元素(九十三)
将每个元素替换为右侧最大元素一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。完成所有替换操作后,请你返回这个数组。示...原创 2020-04-22 13:39:53 · 441 阅读 · 0 评论 -
LeetCode每日一题:1290.二进制链表转整数(九十二)
二进制链表转整数一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值...原创 2020-04-22 09:45:40 · 449 阅读 · 0 评论 -
LeetCode每日一题:1365.有多少小于当前数字的数字(九十一)
交换数字一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数...原创 2020-04-21 11:02:03 · 467 阅读 · 0 评论 -
LeetCode每日一题:交换数组(九十)
交换数字一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。示例:输入: numbers = [1,2]输出: [2,1]提示:...原创 2020-04-20 18:41:33 · 331 阅读 · 0 评论 -
LeetCode每日一题:1389.按既定顺序创建目标数组(八十九)
统计位数为偶数的数字一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组:目标数组 target 最初为空。按从左到右的顺序依次读取 nums[...原创 2020-04-20 18:35:29 · 325 阅读 · 0 评论 -
LeetCode每日一题:1295.统计位数为偶数的数字(八十八)
统计位数为偶数的数字一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。示例 1:输入:nums = [12,345,2,6,7896]输出:2...原创 2020-04-17 18:50:49 · 422 阅读 · 0 评论 -
LeetCode每日一题:4.2最小高度树
三维形体的表面积一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。解法一 (递归)思路前提:遍历的是一个有序数组确...原创 2020-04-16 16:38:05 · 254 阅读 · 0 评论 -
LeetCode每日一题:13.罗马数字转整数(八十七)
罗马数字转整数一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V ...原创 2020-04-13 14:19:44 · 419 阅读 · 0 评论 -
LeetCode每日一题:12.整数转罗马数字(八十六)
整数转罗马数字一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V ...原创 2020-04-10 18:36:07 · 448 阅读 · 0 评论 -
LeetCode每日一题:2.两数相加(八十五)
两数相加一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起...原创 2020-04-10 11:46:18 · 997 阅读 · 2 评论 -
LeetCode每日一题:删除链表的倒数第N个节点(八十四)
删除链表的倒数第N个节点一、LeetCode题解瞧一瞧~博健的LeetCode题解:Gitbook版本传送门博健的LeetCode题解:CSDN传送门有趣的CSS:Gitbook传送门前端进阶笔记:Gitbook传送门二、算法题题目给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, ...原创 2020-04-09 17:47:11 · 324 阅读 · 0 评论