数据结构和算法在最近的工作中使用频率逐步增加,这次终于不想在逃避了,走出舒适区,以极客时间——算法训练营为主教程,记录自己完整的算法学习路程,更新频率为每周1~2篇。恳请各位大佬一起监督。
学习策略
职业化训练:拆分知识点,刻意联系,反馈(归纳总结)
0、工具篇
0.1、LeetCode 中文和国际站
0.2、idea + LeetCode plugin
0.3、google
1、四步切题
1.1、多看题目,明确题意
1.2、多想几种解题思路 比较时间、空间复杂度
1.3、多写,多练
1.4、单元测试
2、五毒神掌
2.1、读+思考 最多15min
看解法 比较多种解法的时间空间复杂度
背过,可默写
2.2、自己写
在leetCode上提交,并通过
多种解法比较,从完成——》优化——》提交
2.3、24h后反复练习,选择薄弱地方针对练习
2.4、一周后反复练习
2.5、面试之前重复练习
3、日常积累
3.1、善用工具 mac 配置iterm 2+ zsh
3.2、多了解关于idea的top tips 快捷键等 提升编程效率
3.3、代码规范,注意代码的整洁性
3.4、自顶向下的编程思路
在开发过程先把握大流程,涉及到分散点仅定义方法名称,待整体流程完成后,完善子方法中的细节
3.5、画出自己脑海中关于数据结构和算法的思维导图,并且随着学习深入不断完善
写在最后的注意事项
1、在国际站的leetcode中多看discuss,学习对应语言至少排名前三大佬的写作方式,帮助自己更快进步
2、在idea中安装leetcode plugin 练习
3、一定要对自己程序的时间和空间复杂度有所了解,而且养成习惯在写完程序后分析出自己程序的时间复杂度
4、思考多种实现方式,对比时间空间复杂度,择优选择
注意时间复杂和空间复杂度到底有什么好处,随着数量级增加,时间复杂度的变化,则是最直接的冲击