Leetcode/Lintcode学习笔记

作为一个算法小白,记录整理自己在学习算法过程中的心得,希望对你也有所帮助。

目录

算法学习

如何高效地准备算法面试

  • 在刷题时,总结、归类相似题目
  • 找出适合同一类题目的模板程序
  • 每隔固定时间重做以前的题目

关于代码风格

  • 代码块可为三大块:异常处理(空串和边界处理),主体,返回
  • 代码风格(可参考 Google 的编程语言规范)
    • 变量名:有意义的变量名
    • 缩进:语句块
    • 空格:二元运算符、括号两侧
    • 可读性:单语句使用花括号等

关于面试

面试官眼中的求职者:你可能是他未来的同事,那么

  • 你的代码看起来舒服么
    • TA 需要多少时间 review 你的代码
  • 你写代码的习惯好么
    • TA 不会在未来疲于帮你 DEBUG,你不会动不动就搞出 SEV(SEV是什么?)
  • 你的沟通能力好么
    • TA 和交流费劲么

面试要考察的编程基本功

  • 程序风格(缩进,括号,变量名等)
  • Coding 习惯(异常检查,边界处理,数组越界等)
  • 沟通(让面试官时刻明白你的意图)
  • 测试(主动写出合理的测试例)

在线刷题网站

  1. Leetcode,应该是最知名的在线刷题网站了,提供多种编程语言的在线检测,评论区氛围很好,大家会分享思路、讨论问题。
  2. Lintcode,和 Leetcode 很像,题目也有一定的重合度,没有评论区。有阶梯训练( Ladder ),方便专题学习。
  3. 牛客网,国内的一个 IT 笔试面试备考平台,有公司真题模考(主要是国内),智能专项练习,在线编程专题多个内容,讨论区有很多校招内容及分享,适合国内找工作的同学。

题目参考解答

  1. 九章算法,提供 Lintcode 三种语言( Java, C++, Python )的解题答案,我个人在学习过程中大量参考了九章的答案,在此致谢。
  2. Leetcode 讨论区,大家会讨论分享交流不同的解法和思路。
  3. 数据结构与算法/leetcode/lintcode题解,作者 yuanbin 维护的个人博客,包含算法基础知识、编程题目解析等内容,题目解析部分很详细,本文档的建立也是受其启发,过程中也借鉴学习了很多,在此表示感谢。
  4. ProgramCreek,个人博客站点,里面有大量关于算法和 Java 相关的内容。Simple Java 中总结的知识点很适合面试前参考。
  5. 水中的鱼,leetcode 题目的答案解析, google 搜索的排名很高。
  6. 喜刷刷,跟“水中的鱼”很像。
  7. 算法精粹 | soulmachine ,soulmachine 的习题汇编在线阅读地址,有 C++ 和 Java 两个版本。

参考书籍

  1. 《算法(第4版)》(豆瓣),Robert Sedgewick 教授的书,讲解了基础的数据结构和算法,配有大量图例,深入浅出,讲解非常细致。结合他老人家在 Coursera 开的两门课程看,效果更佳。课程分别是 Algorithms, Part I ( Coursera, Youtube ) 和 Algorithms, Part II ( Coursera, Youtube ) 。顺带提一下 Robert 教授是 Donald Knuth 的学生,功力深厚。

其他资源

  1. 刷题版 | 一亩三分地,有很多刷题、准备面试的经验分享。
  2. visualgo ,数据结构和算法的可视化演示,对理解算法有帮助。
  3. Data Structure Visualizations ,另一个算法可视化演示网站。

results matching ""

    No results matching ""