Leetcode Records in Javascript
Date | No | Methods |
---|---|---|
2022-8-9 | 1413.逐步求和得到正数的最小值 | |
2022-8-10 | 640.求解方程 | |
2022-8-11 | 1417.重新格式化字符串 | |
2022-8-12 | 1282.用户分组 | |
2022-8-13 | 768.最多能完成排序的块 414.第三大的数 485.最大连续1的个数 495.提莫攻击 628.三个数的最大乘积 645.错误的集合 |
|
2022-8-14 | 1422.分割字符串的最大得分 | |
2022-8-15 | 641.循环双端队列 442.数组中重复的数据 448.找到所有数组中消失的数字 697.数组的度 |
|
2022-8-16 | 1656.设计有序流 367.有效的完全平方数 704.二分查找 |
|
2022-8-17 | 1302.层数最深叶子节点的和 26.删除有序数组中的重复项 27.移除元素 |
|
2022-8-18 | 283.移动零 844.比较含退格的字符串 977.有序数组的平方 209.长度最小的子数组 |
|
2022-8-19 | 1450.在既定时间做作业的学生人数 904.水果成篮 |
|
2022-8-20 | × | |
2022-8-21 | × | |
2022-8-22 | 59.螺旋矩阵 203.移除链表元素 |
|
2022-8-23 | 707.设计链表 344.反转字符串 |
|
2022-8-24 | 1460.通过反转子数组使两个数组相等 | 注意问题的本质,能否将问题等价为一个相对简单的问题进而求解 |
2022-8-25 | × | |
2022-8-26 | 1464.数组中两元素的最大乘积 | |
2022-8-27 | 24.两两交换链表中的节点 | |
2022-8-28 | 242.有效的字母异位词 | |
2022-8-29 | 383.赎金信 49.字母异位词分组 |
1.哈希表;2.利用同一个数组进行字符数的统计(增加或减少) |
2022-8-30 | 438.找到字符串中所有字母异位词 | 滑动窗口 |
2022-8-31 | 349.两个数组的交集 350.两个数组的交集Ⅱ |
September 🎶
Date | No | Methods |
---|---|---|
2022-9-01 | 454.四数相加 | |
2022-9-02 | 15.三数之和 | 双指针方法:(1)通过固定一个元素后,利用两个指针来对剩下的元素进行遍历;(2)如何在遍历的过程就进行去重? |
2022-9-03 | × | |
2022-9-04 | × | |
2022-9-05 | 18.四数之和 541.反转字符串Ⅱ |
|
2022-9-06 | 151.反转字符串中的单词 58.左旋转字符串 |
|
2022-9-07 | 28.实现strStr() | Brute-force方法 |
2022-9-08 | 28.实现strStr()) 459.重复的子字符串 |
KMP算法 |
2022-9-09 | 1598.文件夹操作日志收集器 232.用栈实现队列 |
行为模拟 |
2022-9-10 | × | |
2022-9-11 | 20.有效的括号 | |
2022-9-12 | × | |
2022-9-13 | 670.最大交换 1047.删除字符串中的所有相邻重复项 150.逆波兰表达式求值 |
Greedy stack |
2022-9-14 | 239.滑动窗口最大值 | 利用单调队列; 滑动窗口移动的过程中, 新元素入队时, 如何删除队尾的元素? 新元素入队后, 如何删除队首的元素? [单调队列: 保证对应的数组元素严格单调递减, 因此队首下标对应的数组元素即为当前窗口内的最大值] |
2022-9-15 | 347.前k个高频元素 | 如何用js的数组实现堆结构 |
2022-9-16 | 144.二叉树的前序遍历 145.二叉树的后序遍历 94.二叉树的中序遍历 |
1.递归的参数以及返回结果; 2.递归的终止条件; 3.单层递归的逻辑; |
2022-9-17 | × | |
2022-9-18 | 03.无重复字符的最长子串 | 滑动窗口【返回最长字串及其长度】 |
2022-9-19 | × | |
2022-9-20 | × | |
2022-9-21 | 118.杨辉三角 661.图片平滑器 |
118.二维数组 661.滚动数组 |
2022-9-22 | 303.区域和检索 238.除自身以外数组的乘积 |
303:前缀和数组 238:前后缀乘积数组 |
2022-9-23 | 392.判断子序列 524.通过删除字母匹配到字典里最长单词 |
|
2022-9-24 | 521.最长特殊序列 Ⅰ | 521:脑经急转弯 |
2022-9-25 | × | |
2022-9-26 | 482.密钥格式化 6.z字型变换** 剑指09.用两个栈实现队列 剑指30.包含min函数的栈 |
第6题巧妙利用flag来标识应当将当前字符添加到哪个字符串中 剑指30:使用一个存储当前栈的最小元素的辅助栈 |
2022-9-27 | 剑指06.从尾到头打印链表 剑指24.反转链表 剑指35.复杂链表的复制 |
06:借助辅助栈,实现链表的反向打印 24.递归的写法,递归的终止条件,理解递归的过程其实就是函数入栈和出栈 35.两次遍历,第一次遍历借助hash表建立节点,key为旧链表节点,value为新链表节点;第二次遍历修改每个节点的next指针和random指针; |
2022-9-28 | 剑指05.替换空格 剑指58.左旋转字符串 |
|
2022-9-29 | 剑指03.数组中重复的数字 剑指53.在排序数组中查找数字 剑指53.0-n-1中缺失的数字 |
|
2022-9-30 | × |
Oct
Date | No | Methods |
---|---|---|
2022-10-08 | 剑指04-二维数组中的查找 剑指11-旋转数组的最小数组 剑指50-第一个只出现一次的字符 |
|
2022-10-09 | 剑指32-从上到下打印二叉树 | 1.层次遍历,利用辅助队列将当前层节点出队并将子节点入队 2.分层输出,记录每一层的节点的数目,将该数目的节点出队后添加到res数组中; 3.z字型输出,利用双端队列和标识从左到右还是从右到左的flag,若从左到右,则使用push;若从右到左,则使用unshift从队头反向入队; |
2022-10-10 | 102.二叉树的层次遍历; 【层序遍历的变体】 107.二叉树的层次遍历Ⅱ; 199.二叉树的右视图; 637.二叉树的层平均值; 429.N叉树的层序遍历; 515.在每个树行中找最大值; 116.填充每个节点的下一个右侧节点指针; 605.种花问题 |
102.利用队列; 107.在层次遍历得到的ans数组的基础上,将ans进行逆序即可; 199.在层次遍历的基础上,只记录每一层的最后一个出队的元素,利用queue.length和n进行判断; 637.在层次遍历的基础上,将每层的节点的值求和取平均; 429.跟二叉树类似,只是节点出队时,需将其所有的children节点入队; 515.在层次遍历的基础上,记录每层遍历节点的最大值; 116.在层序遍历的基础上,将除最后一个节点外的每个节点出队后,让其指向队列中待出队的下一个队头节点; |
2022-10-11 | 104.二叉树的最大深度 111.二叉树的最小深度 |
1.基于层序遍历的方法 2.递归方法 |
2022-10-12 | 226.翻转二叉树 | |
2022-10-13 | 414.第三大的数 41.缺失的第一个正数 419.甲板上的战舰 |
|
2022-10-14 | 101.对称二叉树 | |
2022-10-15 | × | |
2022-10-16 | × | |
2022-10-17 | × | |
2022-10-18 | 189.轮转数组 396.旋转函数 |
|
2022-10-19 | 54.螺旋矩阵 566.重塑矩阵 |
|
2022-10-20 | × | |
2022-10-21 | × | |
2022-10-22 | × | |
2022-10-23 | × | |
2022-10-24 | 682.棒球比赛 71.简化路径 |
|
2022-10-25 | ||
2022-10-26 | ||
2022-10-27 | 455.分发饼干 | |
2022-10-28 | ||
2022-10-29 | ||
2022-10-30 | ||
2022-10-31 |
Nov(LeetCode 精选 TOP 面试题)
Date | No | Methods |
---|---|---|
2022-10-31 | 1.两数之和 2.两数相加 |
1.利用es6提供的Map数据结构; 2.模拟法,注意最高位是否还需要进一; |
2022-11-01 | 3.无重复字符的最长子串 | 3.滑动窗口方法 |
2022-11-09 | 4.两个正序数组的中位数 | 不用真正地去合并两个数组,只需要根据两个数组的长度的和,确定合并后中位数的索引,这个索引对应的也是循环的次数。因此,通过for循环, 分别对两个数组进行遍历,使用两个变量存储上一轮遍历和当前遍历的元素值,保证按从小到大进行遍历。 |