V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hakunamatata11
V2EX  ›  推广

刷 leetcode 需要哪些基础?

  •  
  •   hakunamatata11 · 2020-06-19 18:38:01 +08:00 · 2114 次点击
    这是一个创建于 1470 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我见过完全 0 基础、大龄转码,刷题上千然后进谷歌的……

    姑且称他为老 A 吧。这里 0 基础指的是没学过编程语言,没学过数据结构和算法,一上来就直接做题那种。

    第一道题 two sum,老 A 显然是不会做的。他的方法就是看答案,背答案,然后默出来,就这样还是错了很多次。

    然而就是这样低的起点,老 A 把 LC 前 300 道题刷了至少 3 遍,累计刷题数超过 1000 道,最后靠刷题上岸了谷歌。

    关于老 A 的求职过程和刷题经验,可以来看看他自己的分享:

    谷歌在职工程师自述——压箱底的算法经验

    我说老 A 的故事,并不是鼓励大家从 0 开始刷题,毕竟老 A 自己也走了很多弯路,踩了无数坑。

    如果能早点掌握正确的方法,老 A 也就不用刷 1000 道题了。不过老 A 的刷题经验和面试做题方法确实有独到之处。

    在 Leetcode/LintCode 开始刷题,首先最好能具备一定的基础,包括:

    语言基础

    用于刷题的编程语言有很多,算法是通用的,不受限于语言,主流的 Java 或者 Python 都可以。

    Java 的优点是用的公司多,一般面试官没有不会 Java 的; Python 优势在于语法简单,coding 能节省很多时间。

    算法部分

    二分搜索 Binary Search 
    分治 Divide Conquer 
    宽度优先搜索 Breadth First Search 
    深度优先搜索 Depth First Search
    回溯法 Backtracking 
    双指针 Two Pointers 
    动态规划 Dynamic Programming 
    扫描线 Scan-line algorithm
    快排 Quick Sort
    
    

    数据结构部分

    栈 Stack
    队列 Queue
    链表 Linked List 
    数组 Array 
    哈希表 Hash Table
    二叉树 Binary Tree  
    堆 Heap
    并查集 Union Find
    字典树 Trie
    
    

    如果是应对求职面试,那么可以按照下面的面试高频知识点来刷。

    九章算法班 2020 版》免费试听 获取面试 coding style 指南

    为了应对最新疫情下的面试形式,令狐老师已经爆肝熬夜 1 个月,扩充原来 9 节课至 40+课时

    内容亮点:

    • 课程覆盖 90%国内外一线大厂算法面试高频考点
    • 2020 夏秋招最新大厂面试算法题 80+实战讲解
    • 规范编程细节,实质性提升 Coding 能力避免面试“隐形坑”
    • 课程体系完美匹配大厂面试考点,算法面试从容应对

    如何报名 : 戳链接立即免费报名试听:https://www.jiuzhang.com/course/71/?utm_source=sc-v2ex-fks 立即报名免费试听

    对算法题来说有两大法宝,“拿到题选什么算法”和“如何实现这个算法”,后者会更容易一些,所以可以先从实现算法开始练起,LintCode 可以筛选对应知识点的分类训练。

    当然,针对面试算法,也有一些书:

    《剑指 Offer 》:几乎包含所有常见的、经典的面试题,是应对面试的必读书籍

    《编程之美》:适合准备面试 FLAG 大厂时候用来刷题

    ps:配合 lintcode 食用效果更佳

    image

    最后,关于算法和数据结构,再推荐一些书。

    1.入门系列:

    《算法图解》:“像小说一样有趣的算法入门书”,主打“图解”,通俗易懂

    《大话数据结构》:把理论讲得有趣不枯燥;每个数据结构和算法,作者都结合了生活中的例子,能让你有非常直观的感受。

    2.教科书系列:

    《数据结构与算法分析》:很多大学都拿它当作教材,非常系统、全面、严谨,适合掌握了至少一门编程语言的同学。

    作者也很贴心,这本书有三种语言的版本:《数据结构与算法分析 : C 语言描述》《数据结构与算法分析 : C++ 描述》《数据结构与算法分析 : Java 语言描述》。

    3.进阶之旅:

    《算法导论》:有了一定基础之后,就可以开始啃这本大部头了。

    5.扩展阅读:

    《算法之美》:算法科普,从生活中的各种问题说起:租房、谈恋爱、老虎机、拍电影、面试、买彩票、各种排序、找停车位、寻找新药、临床试验、奥巴马拉赞助、预估电影票房等等,非常生活化,可以作为补充阅读。

    《算法帝国》:同样是科普类书籍,并无涉及算法的原理与实现细节,也可以作为补充阅读。

    6.殿堂级

    《计算机程序设计艺术》:包含很多卷,深度、广度、系统性、全面性是其他所有数据结构和算法书籍都所无法相比。可以当做一种挑战~

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2603 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:05 · PVG 17:05 · LAX 02:05 · JFK 05:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.