No. | Title | Solution | Note | Difficulty | Tag | Idea |
---|---|---|---|---|---|---|
1 | 两数之和 | 1.两数之和 | 更多参考方法 | 数组 | 暴力破解/使用Object键值对/一遍Object/Map方法 | |
2 | 最大子序和 | 53.最大子序和 | 更多参考方法 | 数组 | 动态规划 | |
3 | 删除排序数组中的重复项 | 26.删除排序数组中的重复项 | 更多参考方法 | 数组 | 利用splice | |
4 | 总持续时间可被60整除的歌曲 | 1010.总持续时间可被60整除的歌曲 | 更多参考方法 | 数组 | 简单暴力破解 | |
5 | 将数组分成和相等的三个部分 | 1013. 将数组分成和相等的三个部分 | 更多参考方法 | 数组 | 双指针法 | |
6 | 数组拆分 I | 561.数组拆分I | 更多参考方法 | 数组 | 排序然后两两做对 | |
7 | 移除元素 | 23.移除元素 | 更多参考方法 | 数组 | splice大法好! | |
8 | 可被 5 整除的二进制前缀 | 1018.可被 5 整除的二进制前缀 | 更多参考方法 | 数组 | 将二进制转成十进制 | |
9 | 数组中的K-diff数对 | 532.数组中的K-diff数对 | 更多参考方法 | 数组 | 先排序再暴力 | |
10 | 搜索插入位置 | 35.搜索插入位置 | 更多参考方法 | 数组 | 分三种情形考虑比较 | |
11 | 重塑矩阵 | 566.重塑矩阵 | 更多参考方法 | 数组 | 先转成一维数组再进行分割最后push进数组 | |
12 | 拼写单词 | 1160.拼写单词 | 更多参考方法 | 数组 | 使用indexof来找字符出现的位置 | |
13 | 高度检查器 | 1051.高度检查器 | 更多参考方法 | 数组 | 扩展运算符的使用! | |
14 | 拥有最多糖果的孩子 | 1431.拥有最多糖果的孩子 | 更多参考方法 | 数组 | 用Math.max求最大值 | |
15 | 解压缩编码列表 | 1313.解压缩编码列表 | 更多参考方法 | 数组 | 用push向数组添加元素 | |
16 | 在既定时间做作业的学生人数 | 5412.在既定时间做作业的学生人数 | 更多参考方法 | 数组 | 一个循环比较 | |
17 | 统计位数为偶数的数字 | 1295.统计位数为偶数的数字 | 更多参考方法 | 数组 | 将数转换为字符串后获取位数 | |
18 | 有多少小于当前数字的数字 | 1365.有多少小于当前数字的数字 | 更多参考方法 | 数组 | 两个循环暴力破解 | |
19 | 按既定顺序创建目标数组 | 1389.按既定顺序创建目标数组 | 更多参考方法 | 数组 | 利用splice插值 | |
20 | 访问所有点的最小时间 | 1266.访问所有点的最小时间 | 更多参考方法 | 数组 | 取绝对值然后求查值 | |
21 | 统计有序矩阵中的负数 | 1351. 统计有序矩阵中的负数 | 更多参考方法 | 数组 | 双重循环 如果有负数的话就break | |
22 | 将每个元素替换为右侧最大元素 | 1299.将每个元素替换为右侧最大元素 | 更多参考方法 | 数组 | 逆序取当前最大值 | |
23 | 奇数值单元格的数目 | 1252.奇数值单元格的数目 | 更多参考方法 | 数组 | 将行列分开 最后计算的时候将两者相加 | |
24 | 最短无序连续子数组 | 581.最短无序连续子数组 | 更多参考方法 | 数组 | 得到升序数组 然后获得前后两个不相同的位置进行相减 | |
25 | 和为零的N个唯一整数 | 1304.和为零的N个唯一整数 | 更多参考方法 | 数组 | 增加对应的正负值 如果奇数个数的话 就多加一个0 | |
26 | 数组的相对排序 | 1122.数组的相对排序 | 更多参考方法 | 数组 | 使用了concat,filter等方法 | |
27 | 矩阵中的幸运数 | 1380.矩阵中的幸运数 | 更多参考方法 | 数组 | 设置了比较方法!通过math方法获得最小最大值 多看几遍! | |
28 | 0到n-1中缺失的数字 | 面试题53.0到n-1中缺失的数字 | 更多参考方法 | 数组 | 用二分查找法 | |
29 | 判定字符是否唯一 | 面试题01.判定字符是否唯一.js | 更多参考方法 | 数组 | 一一比较 | |
30 | 反转字符串中的单词 | 557.反转字符串中的单词 | 更多参考方法 | 字符串 | 利用split,reverse,join方法 | |
31 | 转换成小写字母 | 709.转换成小写字母 | 更多参考方法 | 字符串 | fromCharCode和charCodeAt方法 | |
32 | 左旋转字符串 | 面试题58.左旋转字符串 | 更多参考方法 | 字符串 | 使用slice和concat | |
33 | 分割平衡字符串 | 1221.分割平衡字符串 | 更多参考方法 | 字符串 | 遍历,然后通过+1和-1 | |
34 | 解码字母到整数映射 | 1309.解码字母到整数映射 | 更多参考方法 | 字符串 | 正则表达式 | |
35 | 唯一摩尔斯密码词 | 804.唯一摩尔斯密码词 | 更多参考方法 | 字符串 | Set其中的一个用途 | |
36 | 括号 | 面试题08.09.括号 | 更多参考方法 | 字符串 | DFS! | |
37 | 机器人能否返回原点 | 657.机器人能否返回原点 | 更多参考方法 | 字符串 | 利用split来获得LRDU的个数 | |
38 | 除数博弈 | 1025.除数博弈 | 更多参考方法 | 动态规划 | 动态规划(有点不太熟练 | |
39 | 反转字符串 | 344.反转字符串 | 更多参考方法 | 字符串 | ES6解构赋值来翻转位置 | |
40 | 旅行终点站 | 1436.旅行终点站 | 更多参考方法 | 字符串 | 利用filter找出没有以该点开始的点 | |
41 | IP地址无效化 | 1108.IP地址无效化 | 更多参考方法 | 字符串 | 利用split和join | |
42 | 生成每种字符都是奇数个的字符串 | 1374.生成每种字符都是奇数个的字符串 | 更多参考方法 | 字符串 | repeat() | |
43 | 判定是否互为字符重排 | 面试题01.02.判定是否互为字符重排 | 更多参考方法 | 字符串 | 利用字符重排拼成字符串 | |
44 | 最长特殊序列 | 521.最长特殊序列 | 更多参考方法 | 字符串 | 子序列 | |
45 | 检查单词是否为句中其他单词的前缀 | 1455.检查单词是否为句中其他单词的前缀 | 更多参考方法 | 字符串 | startsWith方法 | |
46 | 整数的各位积和之差 | 1281.整数的各位积和之差 | 更多参考方法 | 数学 | tostring将整数转成字符串 | |
47 | 打印从1到最大的n位数 | 面试题17.打印从1到最大的n位数 | 更多参考方法 | 数学 | 利用Math.pow求最大的对应位数的数字 | |
48 | 6和9组成的最大数字 | 1323.6和9组成的最大数字 | 更多参考方法 | 数学 | replace取代匹配的第一项 & number可以将字符串转成数字 | |
49 | 链表中倒数第k个节点 | 剑指Offer22.链表中倒数第k个节点 | 更多参考方法 | 链表 | p多走的其实就是q要余下来的个数 | |
50 | 二叉树的深度 | 剑指Offer55-I. 二叉树的深度 | 更多参考方法 | 二叉树 | 分支走&递归 | |
51 | 二叉树的镜像 | 剑指Offer27.二叉树的镜像 | 更多参考方法 | 二叉树 | 递归 | |
52 | 替换空格 | 剑指Offer05.替换空格 | 更多参考方法 | 字符串 | split和join | |
53 | 从尾到头打印链表 | 剑指Offer06.从尾到头打印链表 | 更多参考方法 | 链表 | 利用unshift方法将读取的链表值插入到数组的头部 | |
54 | 反转链表 | 剑指Offer24.反转链表 | 更多参考方法 | 链表 | 指向前面节点 利用temp交换 (多看看!!!) | |
55 | 合并两个排序的链表 | 剑指Offer25.合并两个排序的链表 | 更多参考方法 | 链表 | 递归一个个在两个链表中取最小值插入到next | |
56 | 二进制中1的个数 | 剑指Offer15.二进制中1的个数 | 更多参考方法 | 数学 | 利用tostring(2)将整数转换成二进制字符串 | |
57 | 二叉搜索树的第k大节点 | 剑指Offer54.二叉搜索树的第k大节点 | 更多参考方法 | 二叉树 | 第k大的节点,就是逆中序遍历的第k个节点,即右->根->左的顺序遍历 | |
58 | 数组中重复的数字 | 剑指Offer03.数组中重复的数字 | 更多参考方法 | 数组 | 双重循环比较(比较傻的方法- -) | |
59 | 数组中出现次数超过一半的数字 | 剑指Offer39.数组中出现次数超过一半的数字 | 更多参考方法 | 数组 | 利用摩尔投票法。 如果是主流数字即加一,如果不是则减一。 | |
60 | 和为s的两个数字 | 剑指Offer57.和为s的两个数字 | 更多参考方法 | 查找 | 因为是递增序列,所以如果和大于目标值,减少右边的值;如果和小于目标值,增加左边的值,直到相等。 | |
61 | 和为s的连续正数序列 | 剑指Offer57-II.和为s的连续正数序列 | 更多参考方法 | 查找 | 利用滑动窗口,如果总值大于目标值,左边往右移;如果总值小于目标值,右边像右移。 | |
62 | 调整数组顺序使奇数位于偶数前面 | 剑指Offer21.调整数组顺序使奇数位于偶数前面 | 更多参考方法 | 数组 | 利用两个数组来分别存偶数和奇数,然后拼接 | |
63 | 圆圈中最后剩下的数字 | 剑指Offer62.圆圈中最后剩下的数字 | 更多参考方法 | 约瑟夫环 | 参考了理解规律,很简单!JavaScript解法 | |
64 | 第一个只出现一次的字符 | 剑指Offer50.第一个只出现一次的字符 | 更多参考方法 | 字符串 | 如果在字符串中该字符第一个和最后一个位置 即该字符只出现过一次 | |
65 | 连续子数组的最大和 | 剑指Offer42.连续子数组的最大和 | 更多参考方法 | 数组 | 如果当前位置之前的值大于0,即将之前的值加在当前值上。 | |
66 | 删除链表的节点 | 剑指Offer18.删除链表的节点 | 更多参考方法 | 链表 | 递归 在获得对应值的时候返回下一个节点 | |
67 | 最小的k个数 | 剑指Offer40.最小的k个数 | 更多参考方法 | 数组 | 利用sort排序然后取前k个值 | |
68 | 斐波那契数列 | 剑指Offer10-I.斐波那契数列 | 更多参考方法 | 递归 | 这里利用循环计算斐波那契,记得要取模! | |
69 | 用两个栈实现队列 | 剑指Offer09.用两个栈实现队列 | 更多参考方法 | 栈 | 有点没理解!!多看几遍!! | |
70 | 求1+2+…+n | 剑指Offer64.求1+2+…+n | 更多参考方法 | 递归 | 利用递归且逻辑与来计算 | |
71 | 从上到下打印二叉树 | 剑指Offer32-I.从上到下打印二叉树 | 更多参考方法 | 二叉树 | 利用队列来遍历 | |
72 | 礼物的最大价值 | 剑指Offer 47.礼物的最大价值 | 更多参考方法 | 动态规划 | 利用动态规划分情况进行计算 | |
73 | 把数组排成最小的数 | 剑指Offer45.把数组排成最小的数 | 更多参考方法 | 字符串 | 通过比较a+b和b+a的大小排序并合并得到最小数 | |
74 | 股票的最大利润 | 剑指Offer63.股票的最大利润 | 更多参考方法 | 动态规划 | 找两个差值最大的数,小的值在前,大的值在后 | |
75 | 扑克牌中的顺子 | 剑指Offer61.扑克牌中的顺子 | 更多参考方法 | 排序 | 计算大小王个数,再计算想成为顺子需要补充的个数,两数比较。 | |
76 | 翻转单词顺序 | 剑指Offer58-I.翻转单词顺序 | 更多参考方法 | 字符串 | trim()方法用于去除字符串前导后导多余的空格;split(/\s+/)正则表达式替换空格为空 | |
77 | 青蛙跳台阶问题 | 剑指Offer10-II.青蛙跳台阶问题 | 更多参考方法 | 动态规划 | 利用动态规划计算! | |
78 | 数组中数字出现的次数II | 剑指Offer56-II.数组中数字出现的次数II | 更多参考方法 | 其他 | 获取indexof和lastindexof 比较即可 | |
79 | 二维数组中的查找 | 剑指Offer04.二维数组中的查找 | 更多参考方法 | 查找 | 从右上角开始进行比较 ,然后调整行列位置。 | |
80 | 旋转数组的最小数字 | 剑指Offer11.旋转数组的最小数字 | 更多参考方法 | 数组 | 如果当前数小于前一个数 即为最小的 如果没有的话 则返回第一个数字 | |
81 | 把数字翻译成字符串 | 剑指Offer46.把数字翻译成字符串 | 更多参考方法 | 动态规划 | 利用动态规划获取两个位的数据来计算次数 | |
82 | 剑指Offer29.顺时针打印矩阵 | 剑指Offer29.顺时针打印矩阵 | 更多参考方法 | 数组 | 设置从左到右以及从右到左两个方向 | |
83 | 从上到下打印二叉树II | 剑指Offer32-II.从上到下打印二叉树II | 更多参考方法 | 二叉树 | 一层层遍历 |
shawvey / leetcode Goto Github PK
View Code? Open in Web Editor NEW🥬🐔Leetcode刷题笔记📒(JavaScript)