【搞定算法】常见算法题分类总览

时间:2024-10-08 07:17:07

说明(个人见解):

一、标注说明

标注手撕:必须掌握,熟练写出 code;

标注星号:星号越多越重要;

标注加分:一般此类都是算法不容易实现,但是需要掌握思想,面试加分。

二、刷题顺序

1、了解基本的数据结构与算法的知识:

  • 常用的数据结构:数组、链表、栈、队列、哈希表、树、图等的基本概念和实现;
  • 常用的算法:DFS / BFS、最短路径算法(Dijkstra)、贪心算法、动态规划、蓄水池算法、Manacher 算法等;
  • 常用的编程技巧:递归:递归非常重要,要认真理解递归的过程;

2、《剑指Offer》:

《剑指Offer》非常重要,可以看各大公司的面经,很多手撕代码都出自于《剑指Offer》,所以多刷几遍,每一题都务必能快速的手写出来。

3、LeetCode:

《剑指Offer》刷完了,可以先刷 LeetCode 的 Top100,当然你也可以根据自身的情况,刷自己薄弱的专题。大部分公司的笔试题都是出自于 LeetCode,原题或者改编,重要性就不用多说了;

4、左神算法班:

这个因人而异了,如果你对算法题比较敏感,这个阶段是可以跳过的。但是如果对算法不是很有信心或者准备的比较晚,还是比较推荐左神的算法班,分为初级和高级,会串讲基本的数据结构和对应的题目。

5、最后:

算法的重要性:得算法者得 Offer。大公司非常看重算法,即便内推,但是面试环节几乎都会手撕代码,如果这个环节出了问题,会大打折扣。