此文档主要记录本人在软件学习方面遇到的问题及技术总结
文章结构根据学习路线进行逐级更新,在学习与工作中存在问题也会同步更新,学习路线如下:
1.
1.建立计算机系统基础【 1-2个月 】
《深入理解计算机系统》 && 《C Primer Plus》
刷题:
- 洛谷:入门难度500题
2.数据结构与算法 【 2-4个月 】
《数据结构、算法与应用》 && 《C++ Primer》
可选补充:《算法导论》
刷题:
第一阶段
- LeetCode:Easy难度
- 数组:两数之和(1)、移除元素(27)
- 链表:反转链表(206)、合并两个有序链表(21)
- 字符串:验证回文串(125)、字符串转整数(8)
- Codeforces:Div.4或Div.3的A/B题
- 侧重输入输出和简单逻辑。
第二阶段
刷题建议:
- LeetCode:Easy-Medium难度
- 树:二叉遍历(94/144/145)、对称二叉树(101)
- 图:岛屿数量(200)、课程表(207)
- 排序:合并区间(56)、前K个高频元素(347)
- Codeforces:Div.3的C/D题
- 练习贪心、简单动态规划(如背包问题)。
3.操作系统与Linux内核
《Linux内核完全剖析》 && 《Linux内核完全注释》
配合阅读:《计算机网络》
刷题建议:
- LeetCode:Medium-Hard难度
- 动态规划:零钱兑换(322)、编辑
距离(72) - 系统设计:LRU缓存(146)、实现
Trie(208)
- 动态规划:零钱兑换(322)、编辑
- Codeforces:Div.2的D/E题
- 练习高级数据结构(线段树、并查
集)和数学思维。
- 练习高级数据结构(线段树、并查
4.高级应用与优化
《C++Primer》进阶 && 《算法导论》
- Codeforces:Div.1/比赛全站
- 参与周赛/虚拟比赛,训练速度和思
维。
- 参与周赛/虚拟比赛,训练速度和思
- LeetCode:高频面试题
- 重点:二叉树、链表、动态规䎞(如
股票问题系列)。
- 重点:二叉树、链表、动态规䎞(如