This work is some notes of learning and practicing data structures and algorithm.
- Part I is some brief introduction of basic data structures and algorithm, such as, linked lists, stack, queues, trees, sorting and etc.
- Part II is the analysis and summary of programming problems, and most of the programming problems come from https://leetcode.com/ and http://www.lintcode.com/.
- Part III is the appendix of resume and other supplements.
This project is hosted on https://github.com/billryan/algorithm-exercise and rendered by Gitbook. You can star the repository on the GitHub to keep track of updates. Another choice is to subscribe channel #github_commit
via Slack https://ds-algo.slack.com/messages/github_commit/. RSS feed is under development.
Feel free to access http://slackin4ds-algo.herokuapp.com for Slack invite automation.
You can view/search this document online or offline, feel free to read it. :)
- Online(Rendered by Gitbook): http://algorithm.yuanbin.me
- Offline(Compiled by Gitbook and Travis-CI):
- EPUB: GitHub, Gitbook, GitCafe(mainland China) - Recommended for iPhone/iPad/MAC
- PDF: GitHub, Gitbook, GitCafe(mainland China) - Recommended for Desktop
- MOBI: GitHub, Gitbook, GitCafe(mainland China) - Recommended for Kindle
- Site Search via Google:
keywords site:algorithm.yuanbin.me
- Site Search via Swiftype: Click
Search this site
on the right bottom of webpages
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, please visit http://creativecommons.org/licenses/by-sa/4.0/
- English maintained by who?
- 简体中文 maintained by @billryan
- 繁體中文 maintained by @CrossLuna
If you find any mistakes or want to update/translate the awesome notes, please follow the contributing guidelines. Any comments or suggestions would be greatly appreciated.
- add multiple languages support, currently 繁體中文, 简体中文 are available
- explore nice writing style
- add implementations of
Python
,C++
,Java
regarding leetcode/lintcode OJ platform - add time and space complexity analysis
- summary of basic data structure and algorithm
- add CSS for online website http://algorithm.yuanbin.me,
yahei
plugin works well - add proper Chinese fonts for PDF output
本文档为数据结构和算法学习笔记,全文大致分为以下三大部分:
- Part I为数据结构和算法基础,介绍一些基础的排序/链表/基础算法
- Part II为 OJ 上的编程题目实战,按题目的内容分章节编写,主要来源为 https://leetcode.com/, http://www.lintcode.com/, http://www.geeksforgeeks.org/, http://hihocoder.com/, https://www.topcoder.com/.
- Part III 为附录部分,包含如何写简历和其他附加材料如系统设计
本文参考了很多教材和博客,凡参考过的几乎都给出明确链接,如果不小心忘记了,请不要吝惜你的评论和issue :)
你可以在线或者离线查看/搜索本文档,以下方式任选~
- 在线阅读(由 Gitbook 渲染) http://algorithm.yuanbin.me
- 离线阅读: 推送到GitHub后会触发 travis-ci 的编译,相应的部分编译输出提供 GitHub 和 GitCafe 下载。
- EPUB: GitHub, Gitbook, GitCafe(中国大陆用户适用) - 适合在 iPhone/iPad/MAC 上离线查看,实测效果极好。
- PDF: GitHub, Gitbook, GitCafe(中国大陆用户适用) - 推荐下载GitHub 和 GitCafe 的版本,Gitbook 官方使用的中文字体有点问题。
- MOBI: GitHub, Gitbook, GitCafe(中国大陆用户适用) - Kindle 专用,未测试,感觉不适合在 Kindle 上看此类书籍,尽管 Kindle 的屏幕对眼睛很好...
- Google 站内搜索:
keywords site:algorithm.yuanbin.me
- Swiftype 站内搜索: 可使用网页右下方的
Search this site
进行站内搜索
本项目托管在 https://github.com/billryan/algorithm-exercise 由 Gitbook 渲染生成 HTML 页面。
你可以在 GitHub 中 star 该项目查看更新,也可以订阅 https://ds-algo.slack.com/messages/github_commit/ 中的 #github_commit
channel 在邮件中查看更新细节,RSS 种子功能正在开发中。
Slack 的自助邀请注册功能已启用,访问 http://slackin4ds-algo.herokuapp.com 即刻开启~
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。传播此文档时请注意遵循以上许可协议。 关于本许可证的更多详情可参考 http://creativecommons.org/licenses/by-sa/4.0/
本着独乐乐不如众乐乐的开源精神,我将自己的算法学习笔记公开和小伙伴们讨论,希望高手们不吝赐教。
- English maintained by who?
- 简体中文 maintained by @billryan
- 繁體中文 maintained by @CrossLuna
如果你发现任何有错误的地方或是想更新/翻译本文档,请毫不犹豫地猛击 贡献指南.
添加这一小节其实是有点诚惶诚恐的,毕竟这本小书目前还很不完善,把捐助信息贴出来不脸红吗?:-( 但既然前些天有网友专门发邮件来问这个事,我就大概说下我目前的想法,先以 @billryan 为例,其他 Contributor 后续补充,捐助者后期会单独整理公布,当然这是在征得捐助人同意的前提下进行的。除了在 GitHub 上协助编写文档外,你还可以以下面几种方式回馈各位贡献者:
@billryan 喜欢收集各种明信片,来者不拒~ 邮寄的话可以邮寄至 上海市闵行区上海交通大学闵行校区电院群楼5号楼307
,这个地址2016 年3月前有效,收件人:袁斌
。
除了邮寄明信片,你还可以买本书送给各位贡献者,@billryan 的地址见上节。
金额随意。
账户名:yuanbin2014(at)gmail.com 付款时选择 friends and family
金额随意。
- 添加多国语言支持(English, 繁體中文, 简体中文)
- 探索适合用于后期批处理的书写及排版格式
- 完善 leetcode/lintcode 部分
C++
,Java
,Python
三大语言的实现 - 加入时间/空间复杂度分析
- Part I 部分数据结构和算法基础知识的总结
- 完善在线版本 http://algorithm.yuanbin.me 的 CSS, 使用 yahei 插件初步达到目标
- 完善离线版本如 PDF(适合打印的字型) 的中文支持
- 完善离线版本如 PDF(适合在电子屏上浏览的字型) 的中文支持