Skip to content
返回

数据结构和算法

目录

点击展开

数据结构和算法

大厂前端面试,先从算法开始。

  1. 目标不在中大厂的同学,可以略过算法这一节。
  2. 算法 0 基础的同学,可先略过这一节,临时准备根本来不及,需要日常积累。
  3. 如果时间不够,每个分类刷 1-2 道,全刷完太多了。主要是掌握解题的套路。

算法基础 Basic

磨刀不误砍柴工,别着急刷 LeetCode 等算法题,先把基础巩固好,会事半功倍。

前端常见的数据结构有哪些?有什么基础算法?有什么应用场景?

数组/字符串

基础算法:

链表

应用场景:React fiber 结构

基础算法:遍历,反转

应用场景:

基础算法:

队列

应用场景:

基础算法:

应用场景:DOM 树,VDOM

基础算法:

二叉树

应用场景:

基础算法:

应用场景:内存堆栈模型

基础算法:堆排序

应用场景:前端流程图、关系图,社交网络模型,搜索引擎

基础算法:

什么是时间复杂度?

算法的时间复杂度,定性(数量级)的描述算法运行的时间,用 O 符号表示。

常见的时间复杂度

图示如下

1

什么是空间复杂度?

同时间复杂度,只是把时间换成空间。时间是 CPU 的消耗,空间是内存的消耗。

数组 Array

两数之和

买卖股票的最佳时机

盛水最多的容器

除自身以外数组的乘积

字符串 String

无重复字符的最长子串

验证回文串

反转字符串中的单词

最长回文子串

链表 Linked List

反转链表

合并两个有序链表

删除链表的倒数第 N 个结点

判断环形链表

相交链表

栈 Stack

有效的括号

最小栈

用栈实现队列

字符串解码

队列 Queue

用队列实现栈

最近的请求次数

二叉树 Binary Tree

二叉树的最大深度

验证二叉搜索树

二叉树的层序遍历

对称二叉树

动态规划 Dynamic Programming

第 N 个斐波那契数

爬楼梯

不同路径

最长递增子序列

零钱兑换

分治 Divide and Conquer

二分查找

快速排序

数组中的第 K 个最大元素

最大子数组和

双指针 Two Pointers

移动零

判断子序列

两数之和 II - 输入有序数组

接雨水


Share this post on:

上一篇文章
JS 手写代码
下一篇文章
投递简历