写在前面:
很多在准备面试的朋友都会遇到这样的问题:算法题该怎么刷? 笔者也曾经想过,个人认为想进好的公司肯定是离不开大量刷题的(推荐跟着代码随想录进行刷题学习)。但其实大部分的公司对于前端开发的算法要求仅限于一些简单且常见的leetcode算法题,下面是我个人遇到的高频算法题汇总(包含自己在牛客上看到的面经所写的算法题),可以尝试着先把下面的题目解决了,再慢慢拓展自己的题量。
有兴趣的朋友可以按照下面的顺序进行刷题,大概每天五道的话,两周的题量。刷题前期如果一道题五分钟你还没有思路的话,推荐直接看答案。刷题过程中一定要注意找到每道题最适合你自己的思路,一般面试官再给你出算法题之后会先问你思路是怎么样的。其次最好能记住该题的最优解,因为就算你写出来了算法题,面试官还会问你能不能继续优化。
个人觉得刷题对于程序员来说应该是一个常态化的学习,应该保持刷题的手感。
当然如果你是非科班出身,建议先去了解一下常见的数据结构和算法思想。
如果你遇到了以下题目之一,或者受到了这篇文章的帮助,请为我点个鼓励的赞吧!
链表相关
树相关
- 路径总和
- 路径总和 II
- 二叉树的所有路径
- 二叉树的层序遍历
- N 叉树的层序遍历
- 二叉树的前序遍历
- N 叉树的前序遍历
- 二叉树的最大深度
- 二叉树的完全性检验
- 翻转二叉树
- 二叉树的最近公共祖先
- 相同的树
- 对称二叉树
字符串相关
- 最长公共前缀
- 罗马数字转整数
- 整数转罗马数字
- 找出字符串中第一个匹配项的下标
- 最长重复子串
- 最长回文串
- 最长回文子序列
- 最长公共子序列
- 判断子序列
- 最长回文子串
- 回文数
- 验证回文串
- 验证回文串 II
- 无重复字符的最长子串
- 字符串的排列
- 字符串相乘
- 字符串相加
数组相关
- 买卖股票的最佳时机
- 最长递增子序列
- 最长连续递增序列
- 最长重复子数组
- 不相交的线
- 搜索旋转排序数组
- x 的平方根
- 比较版本号
- 第一个错误的版本
- 有序数组中的单一元素
- 盛最多水的容器
- 三数之和
- 最接近的三数之和
- 接雨水
- 合并两个有序数组
- 移动零
- 括号生成
- 全排列
- 全排列 II
- 最小路径和
- 不同路径
- 不同路径 II