LeetCode 攻略 - 2019 年 7 月下半月汇总(100 题攻略)

Create by jsliang on 2019-07-30 16:15:37
Recently revised in 2019-07-30 17:04:20

7 月下半旬攻略 45 道题,目前已攻略 100 题。

一 目录

不折腾的前端,和咸鱼有什么区别

| 目录 |
| --- |
| 一 目录 |
| 二 前言 |
| 三 汇总 |
|  3.1 LeetCode 已攻略 |
|  3.2 Function & Object |
| 四 总结 |

二 前言

返回目录

2019-05-16 开始,jsliang 每天会折腾一道及以上 LeetCode 题目,并将其解题思路记录成文章,发布到 GitHub 和 微信公众号。

  • 微信公众号记录截图:

  • GitHub 记录截图:

目前关于这块 LeetCode &&& 算法与数据结构 的安排:

  1. 【完成】2019/08/15 前。LeetCode 简单难度题目 - 完成 100 道简单 LeetCode 题目的题解。
  2. 【准备开始】2019/08/01 - 2019/09/01。初步钻研算法与数据结构。
  3. 【尚未开始】。LeetCode 中等难度题目 - 完成 50 道中等 LeetCode 题目的题解。
  4. 【尚未开始】。进一步钻研算法与数据结构。
  5. 【尚未开始】。LeetCode 困难难度题目 - 完成 20 道困难 LeetCode 题目的题解。
  6. 【尚未开始】。完善算法与数据结构。

截至目前为止,jsliang 在攻略 LeetCode 中的收获:

  • JS 基础:ES5、ES6 等的 API,以及它们的应用……
  • 解题思维:碰到难点,会先分析这道题的破解方法,然后进一步讲解优化思路……
  • 算法与数据结构:双指针、动态规划、链表、二叉树……

所以,如果小伙伴跟 jsliang 一样,希望提升下对于原生 JS API 的理解及使用,熟悉算法与数据结构,可以跟紧 jsliang 的公众号以及 GitHub:

  • 公众号:

  • GitHub:jsliang 的文档库

三 汇总

返回目录

相比于 jsliang 的 LeetCode 6 月和 7 月中旬汇总:

  • LeetCode 6 月汇总
  • LeetCode 7 月中旬汇总

LeetCode 由 1114 道题变成了 1134 道题,增加了 20 道题。

jsliang 在 LeetCode 简单难度的题解,由 55 道题变成 100 道题,增加了 45 道题的题解。

jsliang 在 JavaScript 的基础知识上,增加了几篇 JavaScript 基础文章。

3.1 LeetCode 已攻略

返回目录

jsliang 目前已攻略 100 道 LeetCode。

如果小伙伴们在攻略 LeetCode 的过程中,想出一些优秀题解,欢迎提交到 Issue,或者直接在 jsliang 的小册留言,或者拉到文章最下面,添加 jsliang 的微信等:

  • document.jsliang.top。

jsliang 会根据题解以及留言内容,进行补充,并添加上提供题解的小伙伴的 GitHub 昵称和地址。

那么,话不多说,放列表:

  • 001 - 两数之和(two-sum) ✔
  • 007 - 整数反转(reverse-integer) ✔
  • 009 - 回文数(palindrome-number) ✔
  • 013 - 罗马数字转整数(roman-to-integer) ✔
  • 014 - 最长公共前缀(longest-common-prefix) ✔
  • 020 - 有效的括号(valid-parentheses) ✔
  • 021 - 合并两个有序链表(merge-two-sorted-lists) ✔
  • 026 - 删除排序数组中的重复项(remove-duplicates-from-sorted-array) ✔
  • 027 - 移除元素(remove-element) ✔
  • 028 - 实现strStr(implement-strstr) ✔
  • 029 - 搜索插入位置(search-insert-position) ✔
  • 038 - 报数(count-and-say) ✔
  • 053 - 最大子序和(maximum-subarray) ✔
  • 058 - 最后一个单词的长度(length-of-last-word) ✔
  • 066 - 加一(plus-one) ✔
  • 067 - 二进制求和(add-binary) ✔
  • 069 - x 的平方根(sqrtx) ✔
  • 070 - 爬楼梯(climbing-stairs) ✔)
  • 083 - 删除排序链表中的重复元素(remove-duplicates-from-sorted-list) ✔
  • 088 - 合并两个有序数组(merge-sorted-array) ✔
  • 100 - 相同的树(same-tree) ✔)
  • 101 - 对称二叉树(symmetric-tree) ✔
  • 104 - 二叉树的最大深度(maximum-depth-of-binary-tree) ✔
  • 107 - 二叉树的层次遍历 II(binary-tree-level-order-traversal-ii) ✔
  • 108 - 将有序数组转换为二叉搜索树(convert-sorted-array-to-binary-search-tree) ✔
  • 110 - 平衡二叉树(balanced-binary-tree) ✔
  • 111 - 二叉树的最小深度(minimum-depth-of-binary-tree) ✔
  • 112 - 路径总和(path-sum) ✔
  • 118 - 杨辉三角(pascals-triangle) ✔
  • 119 - 杨辉三角II(pascals-triangle-ii) ✔
  • 121 - 买卖股票的最佳时机(best-time-to-buy-and-sell-stock) ✔
  • 122 - 买卖股票的最佳时机II(best-time-to-buy-and-sell-stock-ii) ✔
  • 125 - 验证回文串(valid-palindrome) ✔
  • 136 - 只出现一次的数字(single-number) ✔
  • 141 - 环形链表(linked-list-cycle) ✔
  • 155 - 最小栈(min-stack) ✔
  • 160 - 相交链表(intersection-of-two-linked-lists) ✔
  • 167 - 两数之和II(two-sum-ii-input-array-is-sorted) ✔
  • 168 - Excel表列名称(excel-sheet-column-title) ✔
  • 169 - 求众数(majority-element) ✔
  • 171 - Excel表列序号(excel-sheet-column-number) ✔
  • 172 - 阶乘后的零(factorial-trailing-zeroes) ✔
  • 189 - 旋转数组(rotate-array) ✔
  • 190 - 颠倒二进制位(reverse-bit) ✔
  • 191 - 位1的个数(number-of-1-bits) ✔
  • 198 - 打家劫舍(house-robber) ✔
  • 202 - 快乐数(happy-number) ✔
  • 203 - 移除链表元素(remove-linked-list-elements) ✔
  • 204 - 计数质数(count-primes) ✔
  • 205 - 同构字符串(isomorphic-strings) ✔
  • 206 - 反转链表(reverse-linked-list) ✔
  • 217 - 存在重复元素(contains-duplicate) ✔
  • 219 - 存在重复元素II(contains-duplicate-ii) ✔
  • 225 - 用队列实现栈(implement-stack-using-queues) ✔
  • 226 - 翻转二叉树(invert-binary-tree) ✔
  • 231 - 2的幂(power-of-two) ✔
  • 232 - 用栈实现队列(implement-queue-using-stacks) ✔
  • 234 - 回文链表(palindrome-linked-list) ✔
  • 二叉树的最近公共祖先(lowest-common-ancestor-of-a-binary-search-tree) ✔
  • 237 - 删除链表中的节点(delete-node-in-a-linked-list) ✔
  • 242 - 有效的字母异位词(valid-anagram) ✔
  • 257 - 二叉树的所有路径(binary-tree-paths) ✔
  • 258 - 各位相加(add-digits) ✔
  • 263 - 丑数(ugly-number) ✔
  • 268 - 缺失数字(missing-number) ✔
  • 278 - 第一个错误的版本(first-bad-version) ✔
  • 283 - 移动零(move-zeroes) ✔
  • 290 - 单词规律(word-pattern) ✔
  • 292 - Nim游戏(nim-game) ✔
  • 303 - 区域和检索之数组不可变(range-sum-query-immutable) ✔
  • 326 - 3的幂(power-of-three) ✔
  • 342 - 4的幂(power-of-four) ✔
  • 344 - 反转字符串(reverse-string) ✔
  • 345 - 反转字符串中的元音字母(reverse-vowels-of-a-string) ✔
  • 349 - 两个数组的交集(intersection-of-two-arrays) ✔
  • 350 - 两个数组的交集II(intersection-of-two-arrays-ii) ✔
  • 367 - 有效的完全平方数(valid-perfect-square) ✔
  • 371 - 两整数之和(sum-of-two-integers) ✔
  • 383 - 赎金信(ransom-note) ✔
  • 387 - 字符串中的第一个唯一字符(first-unique-character-in-a-string) ✔
  • 389 - 找不同(find-the-difference) ✔
  • 400 - 第N个数字(nth-digit) ✔
  • 401 - 二进制手表(binary-watch) ✔
  • 404 - 左叶子之和(sum-of-left-leaves) ✔
  • 405 - 数字转换为十六进制(convert-a-number-to-hexadecimal) ✔
  • 409 - 最长回文串(longest-palindrome) ✔
  • 412 - FizzBuzz(fizz-buzz) ✔
  • 414 - 第三大的数(third-maximum-number) ✔
  • 415 - 字符串相加(add-strings) ✔
  • 429 - n叉树的层序遍历(n-ary-tree-level-order-traversal) ✔
  • 434 - 字符串中的单词数(number-of-segments-in-a-string) ✔
  • 437 - 路径总和III(path-sum-iii) ✔
  • 438 - 找到字符串中所有字母异位词(find-all-anagrams-in-a-string) ✔
  • 441 - 排列硬币(arranging-coins) ✔
  • 443 - 压缩字符串(string-compression) ✔
  • 447 - 回旋镖的数量(number-of-boomerangs) ✔
  • 448 - 找出所有数组中消失的数字(find-all-numbers-disappeared-in-an-array) ✔
  • 453 - 最小移动次数使数组元素相等(minimum-moves-to-equal-array-elements) ✔
  • 455 - 分发饼干(assign-cookies) ✔
  • 459 - 重复的字符串(repeated-substring-pattern) ✔

3.2 Function & Object

返回目录

在刷 LeetCode 的过程中,接触了原生 JS 的一些方法和对象,推荐小伙伴们结合 LeetCode 的题解进行食用,毕竟:

  • 没用上的知识点,都是脑中的垃圾

Function - 方法

  • 方法 - charCodeAt()
  • 方法 - filter()
  • 方法 - forEach()
  • 方法 - fromCharCode()
  • 方法 - indexOf()
  • 方法 - join()
  • 方法 - map()
  • 方法 - padStart()
  • 方法 - parseInt()
  • 方法 - pop()
  • 方法 - push()
  • 方法 - reduce()
  • 方法 - reverse()
  • 方法 - shift()
  • 方法 - slice()
  • 方法 - sort()
  • 方法 - splice()
  • 方法 - split()
  • 方法 - substring()
  • 方法 - toLocaleLowerCase()
  • 方法 - toString()
  • 方法 - unshift()

Object - 对象

  • 对象 - Map
  • 对象 - Math
  • 对象 - Number
  • 对象 - RegExp
  • 对象 - Set
  • 对象 - String

四 总结

返回目录

知识的增加并非一朝一夕的事,jsliang 在今天以前,每天早上 7:30 - 9:00 会攻略一道简单难度的 LeetCode,并将自己的思路,通过文章的形式记录下来。

目前简单难度攻略已经到 100 题,所以后面 jsliang 会调整自己,在刷 算法与数据结构 的同时,攻略中等难度的题目。

至于之后的高级难度,会循序渐进地攻略,感兴趣的小伙伴们可以持续关注我的 GitHub、公众号:

  • GitHub - jsliang 的文档库
  • 公众号 - 飘飞的心灵

同时,欢迎小伙伴们加 jsliang 微信一起探讨:

默认会拉你进微信群,并且推荐公众号给小伙伴

最后,jsliang 会吸取身边一些小伙伴的优秀文章,跟小伙伴们一起学习折腾。

如果你感觉自己的文章也不错,欢迎分享:

【推荐】前端面试每日3+1,以面试题来驱动学习,坚持每天学习与思考,每天进步一点!

  • Vue 248+ 个知识点(面试题)为你保驾护航
  • React 328道最全面试题(持续更新)
  • 前端面试每日3+1(周汇总2019.07.28)
知识共享许可协议jsliang 的文档库 由 梁峻荣 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。
基于 https://github.com/LiangJunro...上的作品创作。
本许可协议授权之外的使用权限可以从 https://creativecommons.org/l... 处获得。

你可能感兴趣的:(算法-数据结构,数据结构,算法,leetcode,javascript)