GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!

 

前言

说起LeetCode,作为一个程序员来说,应该都不会感到陌生,就在近几年里参加面试都会提到它。国内外的程序员都用它刷题主要原因是为了面试。据历史记载,这个网站2011年就已经成立了,马上就要到自己10周年的生日了。每周举行周赛,双周赛,月赛,在有限时间内编码,确实非常能考验人的算法能力。一些大公司赞助冠名的比賽获得前几名除了有奖品,还能直接拿到内推的机会。奖励可谓极其丰厚

想必大家都知道在国内BAT等众多一线名企,在招聘工程师的过程中,对算法和数据结构都会重点考察。不过算法易学难精,大家可能技术能力都很不错,但面试时往往总败在算法这一关, 拿不到好Offer。但说实话,数据结构和算法花点时间,对方法,很容易解决。面试官为什么爱问数据结构与算法,原因有4点:

  1. 算法能力能够准确辨别一个程序员的技术功底是否扎实;

  2. 算法能力是发掘程序员的学习能力与成长潜力的关键手段;

  3. 算法能力能够协助判断程序员在面对新问题时,分析并解决问题的能力;

  4. 算法能力是设计一个高性能系统、性能优化的必备基础。

国外流行让面试者编程解决某些数据结构和算法的题目,通过观察面试者编码的熟练程度、思考的速度和深度来衡量面试者的能力和潜力。国内以字节跳动、百度、阿里、腾讯等等为首的互联网企业采用算法面试来筛选人才。

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第1张图片

 

由此可见算法在我们面试过程中是非常重要的,无论是大厂还是传统企业面试基本上都是要问到算法,想拿到一个好offer,算法必须要吃透,那么如何高效刷题呢?下面我们就来看看这几份标星70K的刷题宝典吧

算法刷题宝典

由于笔记涉及到的知识点十分全面,无法一一全部展现出来,为了不影响大家的阅读体验,以下只展示部分笔记内容以供大家参考,如需完整版笔记的朋友可以一键三连之后添加小助理vx:kaixindian331即可获取到了GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第2张图片

第一部分算法专题

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第3张图片

 

Linked List

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第4张图片

 

  • 巧妙的构造虚拟头结点。可以使遍历处理逻辑更加统一。

  • 灵活使用递归。构造递归条件,使用递归可以巧妙的解题。不过需要注意有些题目不能使用递归,因为递归深度太深会导致超时和栈溢出。

  • 链表区间逆序。第92题。

  • 链表寻找中间节点。第876题。链表寻找倒数第n个节点。第19题。只需要-次遍历就可以得到答案。

  • 合并K个有序链表。第21题,第23题。

  • 链表归类。第86题,第328题。

  • 链表排序,时间复杂度要求0(n * log n),空间复杂度0(1)。只有一种做法,归并排序,至顶向下归并。第148题。

  • 判断链表是否存在环,如果有环,输出环的交叉点的下标;判断2个链表是否有交叉点,如果有交叉点,输出交叉点。第141题,第142题,第160题。

Segment Tree

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第5张图片

 

Stack

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第6张图片

 

  • 括号匹配问题及类似问题。第20题,第921题,第1021题。

  • 栈的基本pop和push操作。第71题,第150题,第155题,第224题,第225题,第232题,第946题,第1047题。

  • 利用栈进行编码问题。第394题,第682题,第856 题,第880题。

  • 单调栈。利用栈维护-个单调递增或者递减的下标数组。第84题,第456题,第496题,第503题,第739题,第901题,第907题,第1019题。

第二部分一些模板

  • 线段树Segment Tree

  • 并查集UnionFind

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第7张图片

 

第三部分Leetcode题解

接近1000+题目以供大家刷题,“颤抖吧,骚年”( ′◔ ‸◔`)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第8张图片

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第9张图片

 

42. Trapping Rain Water

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第10张图片

 

378. Kth Smallest Element in a Sorted Matrix

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第11张图片

 

693. Binary Number with Alternating, Bits

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第12张图片

 

802. Find Eventual Safe States

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第13张图片

 

836. Rectangle Overlap

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第14张图片

 

885. Spiral Matrix III

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第15张图片

 

999. Available Captures for Rook

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第16张图片

 

1105. Filling. Bookcase Shelves

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第17张图片

 

1145. Binary. Tree Coloring Game

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第18张图片

 

1254. Number of Closed Islands

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第19张图片

 

1302. Deepest Leaves Sum

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第20张图片

 

第二份算法宝典

为什么要做这样的一个算法图解合集

网上的算法教程杂乱且分散,质量层次不齐,浪费了大家大量宝贵的时间。很多题解,在我掌握题目后去看都费劲,更何况对于一些初学者。

学习指南

本教程阅读门槛

本教程基本没有学习门]槛。因为在每道题目中,我都会尽量去串基础知识,以达到学以致用的效果。

学完本教程期望达到什么样的目的

  • 掌握基本的数据结构与算法

  • 掌握各类型高频面试算法题

本教程有何特色

每一道算法题都配有完整的图解!仅此一家!

题解是围绕什么编写的

掌握!所有的题解都以掌握二字为前提。不会追求过多的奇淫技巧,毕竟我们不是专门研究算法的人。我见过太多算法初学者, 一个题解看不懂,转头又去看第二个题解,第二个看不懂,又去看第三个,直到最后放弃掉。浪费了时间,题目还是不会做,这图什么呢?所以本教程所有的题解都是以掌握为目标,尽量把每一道题的思路都讲的明明白白的。

题解是否严谨

绝对严谨,所有的题解都在leetcode,上进行过测试运行。

没学过java、go是否可以学习

当然可以。我期望大家更多的是去关注算法的本身,而不是语言层面的东西。所以本教程,其实各语言都会使用一些,并不局限于java、go。但是,我绝对不会使用任何语法特性!我希望大家不要被语言所束缚!

是否可以按照本教程顺序来刷题

当然可以。一般刷题我们有两种策略, 一种就是刷leetcode前一百道题目,另一种就是根据分类刷Leetcode前一百道题,是因为这些题目都是经典题目。而根据分类,更适合算法小白和初中阶段读者。所以我在这里选择了根据分类来汇编,这样我们还可以在做一些题目的时候,与前面同类型的题目进行比较。

你需要做什么

开干!奥利给!

数组系列

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第21张图片

 

旋转数组(189)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第22张图片

 

链表系列

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第23张图片

 

删除链表倒数第N个节点(19)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第24张图片

 

动态规划系列

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第25张图片

 

三角形最小路径和(120)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第26张图片

 

打家劫舍(198)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第27张图片

 

字符串系列

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第28张图片

 

反转字符串(301)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第29张图片

 

二叉树系列

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第30张图片

 

最大深度与DFS(104)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第31张图片

 

BST的删除(450)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第32张图片

 

二叉树的剪枝(814)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第33张图片

 

滑动窗口系列

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第34张图片

 

博弈论系列

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第35张图片

 

位运算系列

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第36张图片

 

2的幂(231)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第37张图片

 

 

二分法系列

 

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第38张图片

 

其他题目

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第39张图片

 

飞机座位分配概率(1227)

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第40张图片

 

三门问题

GitHub“惊现”标星180k的算法刷题笔记,字节跳动大神看了也说是大厂面试神技!_第41张图片

 

由于笔记涉及到的知识点与内容极多,就不一一展示给大家了,若需要完整版两份《力扣算法刷题宝典》的朋友,vx:kaixindian331

总结

对想去国内外大公司就职的程序员来说,算法题这一关是必不可少的。其实只要掌握题目的解题思路和思想,就足以应付国内互联网公司程序员职位的算法面试题。不过,要想去国外的大公司,比如Google、Facebook之类的,还是要研究得透彻一些才行。

另外,除应付面试之外,还有很重要的一点,甚全是更重要的一点,就是这份《算法刷题宝典》可以布我们打开思路,因为很多算法题的解法是需要逆向思维的,需要跳出原有的固定思维模式,当思维模式被打开之后,你会发现原有的事物现在看起来会有不同的看法,因为角度变了。不过这只能自己体会。

祝每一位勤奋努力的程序员都能拿到自己满意的职位!

 

你可能感兴趣的:(程序人生,java,编程,算法,数据结构,面试,java,字节跳动)