乐趣区

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/012019/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)

<img alt=” 知识共享许可协议 ” style=”border-width:0″ src=”https://i.creativecommons.org…; />
<span xmlns:dct=”http://purl.org/dc/terms/&quot; property=”dct:title”>jsliang 的文档库 </span> 由 梁峻荣 采用 知识共享 署名 - 非商业性使用 - 相同方式共享 4.0 国际 许可协议进行许可。
基于 https://github.com/LiangJunro… 上的作品创作。
本许可协议授权之外的使用权限可以从 https://creativecommons.org/l… 处获得。

退出移动版