1. 先刷简单的题目,掌握最基本和最常见的算法。
这一阶段可以考虑杭电HDUOJ 2000-2300题。
2. 开始有针对性训练算法
主要是刷搜索,动态规划,贪心,分治的题目,不断训练,理解,总结。
这个阶段可以考虑uva的分类训练。
3. 训练2的过程中加强对数据结构和算法的理解
链表,栈,队列,树,图,堆,图算法等。
刷数据结构和图算法相关的题目。
4. 不断刷OJ和topcoder,对会与不会的题目都认真理解,总结。
5. 有志者事竟成,坚持!
IT公司面试的话比较适合刷<crack the code interview>, leetcode,NOIP和OJ的题目。
平时训练:HDUOJ, topcoder,看数据结构和算法书
数据结构:链表,栈,队列,树,图,堆
复杂度分析
递归与分治:master method
排序:冒泡,插入,选择,归并,快排,(基数排序,桶排序)
搜索:
图算法:
贪心:
动态规划:
数论:
组合数学:
计算几何:
tools: Github
skills: C++/Java/Python/Matlab
Projects: networking/data_mining/machine_learning
面试:leetcode题目刷一遍,<crack the code interview>, noip题目
英语听力和口语