See More

# 前言 大家应该都知道算法的重要性,不管是大厂小厂都非常重视,因为这个不仅考察你的逻辑能力,还有对数据结构的了解程度,还有各个集合类是否熟练 这一部分就是 算法的章节。 主要是 **剑指offer** 和 **LeetCode**上面的算法题进行整理 **剑指offer因为是C语言版,这里改成Java版本** 这两个主要是之前自己刷题的时候写下来的,然后顺便传到GitHub上,对你们可能也有些帮助 # 先看哪个 **针对不同时间,侧重点也会不同** - 如果你时间多(离面试还有3月以上) - 刷Leetcode - 如果马上就要校招、社招了。刷剑指Offer。 # 格式 ![](img/Xnip2019-11-06_22-42-30.jpg) ## 类名 - 题号+类名 ## 文档注释 - **主类最上面是整个问题的描述**以及我对这个题目的**审题**和**解题思路** - 里面的静态方法是各个**不同的解题的方法**。会有**解题思路**+**时间空间复杂度** - 也会有我对这个**现有题目进行拓展**的一些想法和**解题思路**,比如下图所示 针对该题目,进行一些发散性思考。(不一定是最优的,但是思考很重要) ![](img/Xnip2019-11-06_22-49-50.jpg) # 剑指Offer 很多公司,非大厂(大厂自己会改题)都从这个里面找算法题,你会看到很多校招的算法题90%都是在这本书里,所以如果你时间不多,可以突击刷这个 # LeetCode 分为简单和中等,因为大厂的算法一般也就是中等难度,很多算法都是在中等(算法岗除外) 每个题都是通过了测试,但是代码的风格质量可能不是最优的 总共就一个项目,项目分类按照包分类,分为 - 简单 - 数组 - 链表 - 哈希 - 二叉树 - 等.. - 中等 因为题目不可能是孤立的(比如一个题可能同时要用到数组和hash),所以只是大致分了下,我用什么标签搜索的就放进了哪个包 每一个类就是一个题目,每个类中的注释都会有 - 题目描述 - 示例 - 思路 - 代码