leetcode in go
过遍数,过遍数,过遍数......熟能生巧!
- 第一遍:
- 读题+思考,不要超过15分钟
- 如果有思路,开始编程
- 如果没思路,直接看解法:注意!多解法,比较优劣
- 背诵、默写好的解法
- 第二遍
- 马上自己写--> LeetCode提交
- 多种解法比较、体会-->优化!
- 第三遍
- 过了一天后,再重复做题
- 不同解法的熟练程度-->专项练习
- 第四遍
- 过了一周:反复回来练习相同题目
- 对于不熟的题目专项练习。
- 第五遍
- 如果有面试,面试前一周进行恢复式训练
- 确认需求
- 输入输出 —— 只读/可改?
- 数据类型 —— int/float/链表等
- 数据量级 —— 10/100/1k/1w
- 时空要求 —— O(1)/O(logn)/O(n)/O(nlogn)/O(n^2)/O(n^3)/O(n!)
- 其他要求 —— 比如:只能用O(n)算法等
- 设计用例
- 正常情况
- 异常情况
- 边界情况
- 选取方案
- 可行方案 —— 所有可能的方案,分析时空效率
- 最优方案 —— 根据需求选取时/空效率最高的
- 编写代码
- 符合规范
- 测试代码