JavaScript版数据结构与算法 轻松解决前端算法面试

JavaScript版数据结构与算法 轻松解决前端算法面试

面对当前的大环境,跳槽就业并不容易。单单做好业务开发,已经无法满足企业对中高级前端的要求。从求职角度,你需要在面试前建立自己的算法技术体系。从个人发展的角度,掌握数据结构与算法,有助于更好地阅读源码和设计编写一些复杂的工具。本课程带你用JS语言解决LeetCode上的经典算法题,对每一道题都进行线上测试,每题都有时间/空间复杂度分析。结合前端实际开发情景,带你掌握数据结构与算法。

不要因为做前端,就忽略算法的重要性

面对严峻的求职环境,搞定算法是你提高职场竞争力/迈过面试算法关的必修课

填补前端同学的算法短板

涵盖算法面试各方面

快速刷题高效掌握算法原理与思维

提升编程核心内功 
建立和健全算法知识体系

数据结构+进阶算法+算法思想 
结合实战,带你由浅入深理解抽象算法

有套路、有口诀、有理论 
剖析算法真题,冲击大厂前端offer

理论-解题-应用 带你高效理解面试中常见算法

精选LeetCode真题,每题都通过线上测试,每题都有时间/空间复杂度分析

队列

集合

链表

字典

冒泡算法

选择算法

插入算法

归并算法

快速算法

顺序算法

二分搜索

分而治之

动态规划

贪心

回溯

有效的括号

两个数组的交集

太平洋大西洋水流问题

打家劫舍

最近请求次数

有效的括号

数组中的第K个最大元素

分饼干

两个数组的交集

两数之和

合并两个有序链表

买卖股票的最佳时机 II

删除链表中的节点

二叉树的最大深度/最小深度

翻转二叉树

全排列

反转链表

有效数字

爬楼梯

括号生成

JS中的函数调用堆栈

JS 异步机制里的队列

使用 ES6 的 Set 数据结构

使用链表指针获取 JSON 的节点值

渲染 Antd 的树组件

遍历JSON 的所有节点值

图的深度/广度优先遍历

JavaScript 实现:堆类

  • 第1章 数据结构与算法简介

    本章中介绍了什么是数据结构与算法、为什么要用数据结构与算法、如何学习数据结构与算法。此外,还介绍了如何高效刷 LeetCode。总之,关于这门课,你想知道的都在这里!

    •  1-1 课程介绍试看
    •  1-2 数据结构与算法简介
    •  1-3 如何刷 LeetCode?
  • 第2章 时间/空间复杂度计算

    只会做题可不行,还得会分析时间复杂度和空间复杂度,快来做个追求极致的程序员吧!

    •  2-1 时间复杂度计算
    •  2-2 空间复杂度计算
    •  2-3 【勤于思考,夯实学习成果】阶段思考题
  • 第3章 数据结构之“栈”

    从本章开始将进入数据结构学习的阶段。栈是最简单的数据结构,让我们用后进先出的栈来解决各种问题吧!

    •  3-1 栈简介
    •  3-2 什么场景下用栈
    •  3-3 LeetCode:20.有效的括号
    •  3-4 前端与栈:JS 中的函数调用堆栈
    •  3-5 LeetCode:144. 二叉树的前序遍历
    •  3-6 栈-章节总结
    •  3-7 【勤于思考,夯实学习成果】阶段思考题
  • 第4章 数据结构之“队列”

    先进先出,是数据结构中队列的特性,如何更好的应用这个与栈相反的特性解决实际问题?这个章节将为你答疑解惑!

    •  4-1 队列简介
    •  4-2 什么场景用队列
    •  4-3 LeetCode:933. 最近的请求次数
    •  4-4 前端与队列:JS 异步中的任务队列
    •  4-5 队列-章节总结
    •  4-6 【勤于思考,夯实学习成果】阶段思考题
  • 第5章 数据结构之“链表”

    与栈和队列不同,链表元素的存储不是连续的。链表是非常高频的考点,在前端的日常工作中也有举足轻重的地位,这章一定要好好学习呦!

    •  5-1 链表简介
    •  5-2 LeetCode:237.删除链表中的节点
    •  5-3 LeetCode:206.反转链表
    •  5-4 LeetCode:2. 两数相加
    •  5-5 LeetCode:83. 删除排序链表中的重复元素
    •  5-6 LeetCode:141. 环形链表
    •  5-7 前端与链表:JS 中的原型链试看
    •  5-8 前端与链表:使用链表指针获取 JSON 的节点值
    •  5-9 链表-章节总结
    •  5-10 【勤于思考,夯实学习成果】阶段思考题
  • 第6章 数据结构之“集合”

    前面的数据结构都是有序的,这次我们要学一个无序且唯一的数据结构——集合,快来一起认识一下他在前端中如何应用吧!

    •  6-1 集合简介
    •  6-2 LeetCode:349. 两个数组的交集
    •  6-3 前端与集合:使用 ES6 中 Set
    •  6-4 集合章节总结
    •  6-5 【勤于思考,夯实学习成果】阶段思考题
  • 第7章 数据结构之“字典”

    字典主要存储键值对,可以用来建立各种映射关系。不管是面试还是工作中实战,字典都是重点关注对象,小伙伴们要注意力集中喽!!!

    •  7-1 字典简介
    •  7-2 LeetCode:349. 两个数组的交集
    •  7-3 LeetCode:20.有效的括号
    •  7-4 LeetCode:1. 两数之和试看
    •  7-5 LeetCode:3. 无重复字符的最长子串
    •  7-6 LeetCode:76. 最小覆盖子串
    •  7-7 字典-章节总结
    •  7-8 【勤于思考,夯实学习成果】阶段思考题
  • 第8章 数据结构之“树”

    在我们前端的工作中,树这个数据结构无处不在,级联选择器、DOM树、树插件……,让我们好好再来认识一下这个既熟悉又陌生的“朋友”吧!

    •  8-1 树简介
    •  8-2 深度与广度优先遍历
    •  8-3 二叉树的先中后序遍历
    •  8-4 二叉树的先中后序遍历(非递归版)
    •  8-5 LeetCode:104. 二叉树的最大深度
    •  8-6 LeetCode:111. 二叉树的最小深度
    •  8-7 LeetCode:102. 二叉树的层序遍历
    •  8-8 LeetCode:94. 二叉树的中序遍历
    •  8-9 LeetCode:112. 路径总和
    •  8-10 前端与树:遍历 JSON 的所有节点值
    •  8-11 前端与树:渲染 Antd 中的树组件
    •  8-12 树-章节总结
    •  8-13 【勤于思考,夯实学习成果】阶段思考题
  • 第9章 数据结构之“图”

    生活中的航班、道路、朋友圈都是图,图这个数据结构将世界万物“连接”起来。如何将它与前端应用高效组合,在这章中将向大家解开面纱~~

    •  9-1 图简介
    •  9-2 图的深度广度优先遍历
    •  9-3 LeetCode:65. 有效数字
    •  9-4 LeetCode:417. 太平洋大西洋水流问题
    •  9-5 LeetCode:133. 克隆图
    •  9-6 图-章节总结
    •  9-7 【勤于思考,夯实学习成果】阶段思考题
  • 第10章 数据结构之“堆”

    堆是一种特殊的树。可以帮助我们解决排序问题和Kth 类问题。作为面试中的常客,有哪些需要注意点和适用场景呢?快来一起了解一下吧!

    •  10-1 堆简介
    •  10-2 JavaScript 实现:最小堆类
    •  10-3 LeetCode:215. 数组中的第 K 个最大元素
    •  10-4 LeetCode:347. 前 K 个高频元素
    •  10-5 LeetCode:23. 合并K个排序链表
    •  10-6 堆-章节总结
    •  10-7 【勤于思考,夯实学习成果】阶段思考题
  • 第11章 进阶算法之“搜索排序”

    面试中还不会手写快排、归并和二分?别急,快来跟着老师学套路,轻松搞定经典排序与搜索算法。

    •  11-1 排序和搜索简介
    •  11-2 JavaScript 实现:冒泡排序
    •  11-3 JavaScript 实现:选择排序
    •  11-4 JavaScript 实现:插入排序
    •  11-5 JavaScript 实现:归并排序
    •  11-6 JavaScript 实现:快速排序
    •  11-7 JavaScript 实现:顺序搜索
    •  11-8 JavaScript 实现:二分搜索
    •  11-9 LeetCode:21. 合并两个有序链表
    •  11-10 LeetCode:374. 猜数字大小
    •  11-11 排序与搜索-章节总结
    •  11-12 【勤于思考,夯实学习成果】阶段思考题
  • 第12章 算法设计思想之“分而治之” 

    从本章开始我们就要进入算法设计学习阶段啦!分而治之的口诀一旦背下来,解题只在瞬息之间!还在等什么,快来享受学习的乐趣!

    •  12-1 分而治之简介 
    •  12-2 LeetCode:374. 猜数字大小 
    •  12-3 LeetCode:226. 翻转二叉树 
    •  12-4 LeetCode:100. 相同的树 
    •  12-5 LeetCode:101. 对称二叉树 
    •  12-6 分而治之-章节总结 
    •  12-7 【勤于思考,夯实学习成果】阶段思考题 
  • 第13章 算法设计思想之“动态规划” 

    斐波那契数列问题、爬楼梯问题……无数经典问题都可以用动态规划来解!还在等什么,快来听老司机讲经~~

    •  13-1 动态规划简介 
    •  13-2 LeetCode:70. 爬楼梯 
    •  13-3 LeetCode:198. 打家劫舍 
    •  13-4 动态规划-章节总结 
    •  13-5 【勤于思考,夯实学习成果】阶段思考题 
  • 第14章 算法设计思想之“贪心算法”

    “贪婪”是人的本性,也是算法的精华。干嘛要想得很远?快来看看,贪心算法如何带你今朝有酒今朝醉!

  • 第15章 算法设计思想之“回溯算法”

    遇到岔路,先选择一条路走,走不通拐回来走另一条路,直到走通为止。所谓“拐回来”,就是回溯。听起来很高大上?不不不,很简单,来听听老司机怎样逐步剖析吧!

链接:https://pan.baidu.com/s/1O8gMQOCvyKh7xxkOm4APkw 
提取码:8ie5 
复制这段内容后打开百度网盘手机App,操作更方便哦

大家一起交流学习哦vx:IT_Promise

你可能感兴趣的:(JavaScript版数据结构与算法 轻松解决前端算法面试)