前端入门、进阶必备的JavaScript版LeetCode题解,不收藏一下吗?

image.png

LeetCode题解Js版

题外话

  • LeetCode题解:传送门
  • 前端笔记:传送门

项目背景

旨在提高自己对算法的理解,将题解总结成文章,有利于未来自查,也希望能对大家有所帮助。
如果该项目能对大家起到积极的作用,就算成功了,欢迎大家留言交流,接受批评和指正~
通过传送门可以跳转至LeetCode题解的gitbook版本,方便大家快速浏览

本仓库暂时分为三个部分

  • 第一个是按照题库顺序以及自己刷题的先后排列的LeetCode题解
  • 第二个是每日一题相关的LeeTCode题解(带完善)
  • 第三个以专题类型为区分的题解(待完善)

记录:

  • 2020.04.22 — leetcode题解达到100

关于我

  • decs: 19年毕业的前端开发一枚,沉迷Js
  • E-mail: [email protected]
  • 个人博客: CSDN
  • GitHub: 传送门

LeetCode题解传送门

题解在的CSDN和Gitbook上都有记录,希望大佬们批评指正,一起提高(顺便star下吧!!!)

——————1-100

  • 1.两数之和
  • 2.两数相加
  • 3.无重复长度的字符串
  • 4.寻找两个有序数组的中位数
  • 9.回文数
  • 11.盛水最多的容器
  • 12.整数转罗马数字
  • 13.罗马数字转整数
  • 14.最长公共前缀
  • 15.三数之和
  • 16.最接近的三数之和
  • 20.有效的括号
  • 21.合并两个有序链表
  • 24.两两交换链表中的节点
  • 26.删除排序数组中的重复项
  • 27.移除元素
  • 28.实现strStr()
  • 29.两数相除
  • 33.搜索旋转排序数组
  • 34.在排序数组中查找元素的第一个和最后一个位置
  • 35.搜索插入位置
  • 41.缺失的第一个正数
  • 53.最大子序合
  • 56.合并区间
  • 58.最后一个单词的长度
  • 66.加一
  • 70.爬楼梯
  • 75.颜色分类
  • 80.删除排序数组中的重复项 II
  • 83.删除排序链表中的重复元素
  • 88.合并两个有序数组

——————101-200

  • 125.验证回文串
  • 136.只出现一次的数字
  • 141.环形链表
  • 142.环形链表II
  • 160.相交链表
  • 167.两数之和II - 输入有序数组
  • 169.求众数
  • 182.查找重复的电子邮箱(sql)
  • 189.旋转数组
  • 196.删除重复的电子邮箱
  • 197.上升的温度(sql)

——————201-300

  • 202.快乐数
  • 203.移除列表元素
  • 204.计算质数
  • 206.反转链表
  • 215.数组中的第K个最大元素
  • 217.存在重复元素
  • 219.存在重复元素II
  • 232.用栈实现队列
  • 234.回文链表
  • 237.删除链表中的节点
  • 242.有效的字符异位词
  • 268.缺失数字
  • 283.移动零
  • 287.寻找重复数

——————301-400

  • 328.奇偶链表
  • 344.反转字符串
  • 349.两个数组的交集
  • 350.两个数组的交集II
  • 371.两整数之和

——————401-500

  • 412.FizzBuzz
  • 414.第三大的数
  • 430.扁平化多级双向链表
  • 442.数组中重复的数据
  • 443.压缩字符串
  • 448.找到所有数组中消失的数字
  • 498.对角线遍历

——————501-600

  • 504.七进制数
  • 509.斐波那契数
  • 595.大的国家

——————601-700

  • 627.交换工资
  • 633.平方数之和
  • 645.错误的集合

——————701-800

  • 703.数据流中的第K大元素
  • 704.二分查找
  • 707.设计链表
  • 709.转换成小写字母
  • 724.寻找数组的中心索引
  • 747.至少是其他数字两倍的最大数
  • 771.宝石与石头

——————801-900

  • 836.矩形重叠
  • 860.柠檬水找零
  • 876.链表的中间结点
  • 892.三维形体的表面积
  • 896.单调数列

——————901-1000

  • 905.按奇偶排序数组
  • 912.排序数组
  • 922.按奇偶排序数组II
  • 929.独特的电子邮件地址
  • 961.重复N次的元素
  • 976.三角形的最大周长
  • 977.有序数组的平方

——————1001及之后

  • 1207.独一无二的出现次数
  • 1290.二进制链表转整数
  • 1295.统计位数为偶数的数字
  • 1299.将每个元素替换为右侧最大元素
  • 1323.6和9组成的最大数字
  • 1365.有多少小于当前数字的数字
  • 1389.按既定顺序创建目标数组

数据结构分类

专题仍然分几种,比如数组、对象层面的,比如对象经典算法,后续会将LeetCode题与专题对应上。

  • 数据类型分类
    • 链表
    • 双向链表
    • 队列
    • 哈希表
    • 堆 - 最大堆 & 最小堆
    • 优先队列
    • 字典树
  • 算法主题
    • 数学
    • 集合
    • 字符串
    • 搜索
    • 排序
    • 链表
    • 加密
  • 算法范式——算法范式是一种通用方法,基于一类算法的设计。这是比算法更高的抽象,就像算法是比计算机程序更高的抽象。
    • BF 算法 - 查找/搜索 所有可能性并选择最佳解决方案
    • 贪心法 - 在当前选择最佳选项,不考虑以后情况
    • 分治法 - 将问题分成较小的部分,然后解决这些部分
    • 动态编程 - 使用以前找到的子解决方案构建解决方案
    • 回溯法 - 类似于 BF 算法 试图产生所有可能的解决方案,但每次生成解决方案测试如果它满足所有条件,那么只有继续生成后续解决方案。否则回溯并继续寻找不同路径的解决方案。
    • Branch & Bound - 记住在回溯搜索的每个阶段找到的成本最低的解决方案,并使用到目前为止找到的成本最小值作为下限。以便丢弃成本大于最小值的解决方案。通常,使用 BFS 遍历以及状态空间树的 DFS 遍历。

预告

  • 完善LeetCode题解的数量
  • 提高LeetCode的质量
  • 添加专题系列,例如 动态规划专题、快慢指针专题

你可能感兴趣的:(前端入门、进阶必备的JavaScript版LeetCode题解,不收藏一下吗?)