Giter VIP home page Giter VIP logo

fe-agorithm-interview's Introduction

前端算法面试(高频题库&题目解析)


一站式解决前端面试遇到的算法问题,咱们只专注于前端高频算法。


解决痛点:

(1)LeetCode 题目太多,不知从何刷起?面试题目有些是前端常考,有些是后端常考?
答:本站参照 CodeTop上的前端算法题目考察频度,抽取前 60 道题,知道你时间宝贵,咱们要把时间花在刀刃上。
(2)LeetCode 上面的题解鱼龙混杂,有些直接题目直接贴代码,没有任何分析过程,看不懂?
答:本站会带你理解题目,并且给出解题思路,分析时间&空间复杂度,一题多解,带你彻底搞懂。
(3)GitHub 有些仓库为了吸引关注数目,会尽量把所有题目列的很’全‘(刷不完那一种),根本没有照顾到求职心切的人的心情?
答:本站只做专精,不搞大而全。根据考试频率划分层次,让你做题时心里有数,减少求职者刷算法时的心理负担。

刷题顺序:

首先我们要做好一个心理准备,对于大多数算法小白或者平时没有刷算法题习惯的人来说,刷完第一遍肯定会忘的。
那么搞清楚刷题的目的(进大厂拿高薪)、要刷的次数(建议三次以上)、以及每一遍的刷题目的就很重要。
将知识梳理结构化有利于记忆,而且多刷几次可以加深记忆这是毋庸置疑的。

对于0基础小白,建议刷题前可先过一遍算法入门基础知识,以下是我梳理的一些基础知识点,
主要是:
(1)JS基础(你知道数组的哪些操作是会改变自身的?sort方法你真的了解?)
(2)大学计算机专业课之一算法与数据结构这门课的主要内容的总结。(非科班同学必看,科班同学也可以复习一下)

推荐刷题顺序:
第一遍:
刷前端高频60,先把题目看懂,尝试自己解出来,实在想不出答案直接看题解,千万别浪费时间硬刚,
其次要把题解看透,每一种解法的时间复杂度是怎么来的搞清楚,每一种解法思路&优劣也要搞清楚
第二遍:
参考专题突破的分类,学习一些相应的解题技巧,自己要会总结记到本本上,比如遇到“二叉树”遍历相关题型,首先想到 DFS & BFS
第三遍:
自己不看答案,靠自己前面两遍的刷题记忆以及自己总结的解题技巧,认认真真把每道题做出来,做不出来的题就圈出来,分析一下做不出来的原因
更多遍:
针对于第三遍做题技巧和思路的查漏补缺

使用方法:

Windows or Linux 可以用 (CTRL + click)题目 or 题解 打开一个新窗口。
这样当前页面可以保留,对于刷题比较友好。同理 MAC OS 可以用 CMD + click


CodeTop 前端高频 60 (第1 ~ 20题)


已完成的题目我会将其序号加星号

序号 题目名称 考频 LeetCode 牛客 考点 难度
1* 无重复字符的最长子串 58 题目 题解 题目 题解 双指针 哈希 medium
2* 合并两个有序数组 44 题目 题解 题目 题解 双指针 easy
3* 字符串相加 39 题目 题解 题目 题解 双指针 模拟 easy
4* 比较版本号 38 题目 题解 题目 题解 字符串 medium
5* 有效的括号 37 题目 题解 题目 题解 easy
6* 两数之和 34 题目 题解 题目 题解 哈希 easy
7* 爬楼梯 25 题目 题解 题目 题解 递归 动态规划 easy
8* 全排列 25 题目 题解 题目 题解 回溯 递归 medium
9* 最大子序和 26 题目 题解 题目 题解 贪心 动态规划 easy
10* 路径总和 24 题目 题解 题目 题解 递归 DFS easy
11* 反转链表 22 题目 题解 题目 题解 链表 递归 easy
12* 三数之和 22 题目 题解 题目 题解 双指针 medium
13* 二叉树的层序遍历 23 题目 题解 题目 题解 二叉树 BFS medium
14* 数组中的第K个最大元素 22 题目 题解 题目 题解 快速排序 二分 medium
15* 买卖股票的最佳时机 19 题目 题解 题目 题解 贪心 动态规划 easy
16* 手撕快速排序 19 题目 题解 题目 题解 快速排序 二分 medium
17* 环形链表 20 题目 题解 题目 题解 双指针 哈希 easy
18* 最长回文子串 21 题目 题解 题目 题解 动态规划 medium
19* 求根节点到叶节点数字之和 18 题目 题解 题目 题解 DFS BFS medium
20* 二分查找 15 题目 题解 题目 题解 递归 easy

CodeTop 前端高频 60 (第21 ~ 40题)


已完成的题目我会将其序号加星号

序号 题目名称 考频 LeetCode 牛客 考点 难度
21* 岛屿数量 15 题目 题解 题目 题解 DFS BFS medium
22* 括号生成 13 题目 题解 题目 题解 递归 medium
23* 合并两个有序链表 12 题目 题解 题目 题解 链表 递归 easy
24* 螺旋矩阵 13 题目 题解 题目 题解 - - medium
25* 最长上升子序列 12 题目 题解 题目 题解 动态规划 贪心 二分 medium
26* 二叉树的中序遍历 13 题目 题解 题目 题解 二叉树 DFS BFS easy
27* 二叉树的最大深度 12 题目 题解 题目 题解 二叉树 - easy
28 岛屿的最大面积 11 题目 题解 题目 题解 DFS BFS medium
29 LRU缓存机制 11 题目 题解 题目 题解 - - medium
30 零钱兑换 12 题目 题解 题目 题解 - - medium
31 链表中倒数第K个节点 11 题目 题解 题目 题解 链表 - easy
32 斐波那契数列 10 题目 题解 题目 题解 递归 - easy
33 翻转二叉树 10 题目 题解 题目 题解 二叉树 - easy
34 长度最小的子数组 9 题目 题解 题目 题解 - - medium
35 接雨水 9 题目 题解 题目 题解 - - hard
36 最长重复子数组 10 题目 题解 题目 题解 - - medium
37 二叉树的前序遍历 9 题目 题解 题目 题解 二叉树 - easy
38 合并区间 10 题目 题解 题目 题解 - - medium
39 二叉树的锯齿形层序遍历 8 题目 题解 题目 题解 二叉树 - medium
40 由前序中序遍历构造二叉树 8 题目 题解 题目 题解 二叉树 - medium

CodeTop 前端高频 60 (第41 ~ 60题)


已完成的题目我会将其序号加星号

序号 题目名称 考频 LeetCode 牛客 考点 难度
41 不同路径 8 题目 题解 题目 题解 medium
42 青蛙跳台阶问题 8 题目 题解 题目 题解 easy
43 打乱数组 8 题目 题解 题目 题解 medium
44 相交链表 8 题目 题解 题目 题解 easy
45 旋转图像 7 题目 题解 题目 题解 medium
46 复原IP地址 7 题目 题解 题目 题解 medium
47 圆圈中最后剩下的数字 7 题目 题解 题目 题解 easy
48 K个一组翻转链表 7 题目 题解 题目 题解 hard
49 斐波那契数 7 题目 题解 题目 题解 easy
50 二叉树的右视图 7 题目 题解 题目 题解 medium
51 最小栈 7 题目 题解 题目 题解 easy
52 打家劫舍 7 题目 题解 题目 题解 medium
53 两数相加 6 题目 题解 题目 题解 medium
54 移动零 6 题目 题解 题目 题解 easy
55 删除链表的倒数第 N 个结点 6 题目 题解 题目 题解 medium
56 最长公共前缀 6 题目 题解 题目 题解 easy
57 字符串相乘 6 题目 题解 题目 题解 medium
58 二叉搜索树中第K小的元素 6 题目 题解 题目 题解 medium
59 最小路径和 6 题目 题解 题目 题解 medium
60 阿拉伯数字转中文数字 5 题目 题解 题目 题解 medium

TODO LIST (已完成的加星号)


本站持续更新(每周一凌晨更新20份题解,每个月的1号同步CodeTop上的考频),敬请期待……

每一个的一个小小的 star 都汇聚成我更新的动力,非常感谢您的关注。

fe-agorithm-interview's People

Contributors

hovinghuang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

fe-agorithm-interview's Issues

合并两个有序数组——题解Bug

您的题解链接

Bug复现

输入数据为 [0], 0, [1], 1,预期结果为 [1] ,实际结果为 [undefined]。

原因

41-45行,在处理A数组为空的情况时,遗漏了return。

    if (!A.length || !m) {
        for (let i = 0; i < n; i++) {
            A[i] = B.shift()
        }
        return // 此处应return
    }

否则继续往下执行至58-63行时,由于43行的shift方法已经将B数组的全部元素弹出,B[bIndex]成为了undefined,造成结果错误。

// 数组 A 遍历完,B 还有
    if (aIndex < 0) {
        while (bIndex >= 0) {
            A[mIndex--] = B[bIndex--] // 此时的 B[bIndex] 为undefined!!
        }
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.