{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Leetcode/Lintcode学习笔记\n", "\n", "作为一个算法小白,记录整理自己在学习算法过程中的心得,希望对你也有所帮助。\n", "\n", "## 如何高效地准备算法面试\n", "\n", "- 在刷题时,总结、归类相似题目\n", "- 找出适合同一类题目的模板程序\n", "- 每隔固定时间重做以前的题目\n", "\n", "## 关于代码风格\n", "\n", "- 代码块可为三大块:异常处理(空串和边界处理),主体,返回\n", "- 代码风格(可参考 Google 的编程语言规范)\n", " - 变量名:有意义的变量名\n", " - 缩进:语句块\n", " - 空格:二元运算符、括号两侧\n", " - 可读性:单语句使用花括号等\n", "\n", "## 关于面试\n", "\n", "- 程序风格(缩进,括号,变量名等)\n", "- Coding 习惯(异常检查,边界处理,数组越界等)\n", "- 测试(主动写出合理的测试例)\n", "\n", "## 在线刷题网站\n", "\n", "- [Leetcode](https://leetcode.com/),应该是最知名的在线刷题网站了,提供多种编程语言的在线检测,评论区氛围很好,大家会分享思路、讨论问题。\n", "- [Lintcode](http://www.lintcode.com/),和 Leetcode 很像,题目也有一定的重合度,没有评论区。有阶梯训练( Ladder ),方便专题学习。\n", "- [牛客网](http://www.nowcoder.com/),国内的一个 IT 笔试面试备考平台,有公司真题模考(主要是国内),智能专项练习,在线编程专题多个内容,讨论区有很多校招内容及分享,适合国内找工作的同学。\n", "\n", "## 题目参考解答\n", "\n", "- [九章算法](http://www.jiuzhang.com/solutions/),提供 Lintcode 三种语言( Java, C++, Python )的解题答案,我个人在学习过程中大量参考了九章的答案,在此致谢。\n", "- [Leetcode 讨论区](https://discuss.leetcode.com/),大家会讨论分享交流不同的解法和思路。\n", "- [数据结构与算法/leetcode/lintcode题解](http://algorithm.yuanbin.me/),作者 yuanbin 维护的个人博客,包含算法基础知识、编程题目解析等内容,题目解析部分很详细,本文档的建立也是受其启发,过程中也借鉴学习了很多,在此表示感谢。\n", "- [ProgramCreek](http://www.programcreek.com/),个人博客站点,里面有大量关于算法和 Java 相关的内容。Simple Java 中总结的知识点很适合面试前参考。\n", "- [水中的鱼](http://fisherlei.blogspot.jp/),leetcode 题目的答案解析, google 搜索的排名很高。\n", "- [喜刷刷](http://bangbingsyb.blogspot.jp/),跟“水中的鱼”很像。\n", "- [算法精粹 | soulmachine](https://www.gitbook.com/book/soulmachine/algorithm-essentials/details) ,soulmachine 的习题汇编在线阅读地址,有 C++ 和 Java 两个版本。\n", "\n", "## 参考书籍\n", "\n", "- [《算法(第4版)》(豆瓣)](https://book.douban.com/subject/19952400/),Robert Sedgewick 教授的书,讲解了基础的数据结构和算法,配有大量图例,深入浅出,讲解非常细致。\n", "\n", "## 其他资源\n", "\n", "- [刷题版 | 一亩三分地](http://www.1point3acres.com/bbs/forum-84-1.html),有很多刷题、准备面试的经验分享。\n", "- [visualgo](http://visualgo.net/) ,数据结构和算法的可视化演示,对理解算法有帮助。\n", "- [Data Structure Visualizations](http://www.cs.usfca.edu/~galles/visualization/Algorithms.html) ,另一个算法可视化演示网站。" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" }, "toc": { "colors": { "hover_highlight": "#DAA520", "navigate_num": "#000000", "navigate_text": "#333333", "running_highlight": "#FF0000", "selected_highlight": "#FFD700", "sidebar_border": "#EEEEEE", "wrapper_background": "#FFFFFF" }, "moveMenuLeft": true, "nav_menu": { "height": "156px", "width": "252px" }, "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 4, "toc_cell": false, "toc_section_display": "block", "toc_window_display": false, "widenNotebook": false } }, "nbformat": 4, "nbformat_minor": 2 }