#20180823
本仓库主要记录刷LeetCode过程,包括:
- 算法思路;
- 代码;
- 感想;
- 其他。
鉴于没有刷过题经历,对于数据结构课程一些概念,如线性表、栈和队列、树等,以前本科也上过课,读研后自己又补过一次,工作后又看了一遍,但是由于没有经历持续有效编程项目实践积累,基本这几次看完之后很快就忘记。 现在重新又开始补这块,是因为:
- 重新规划工作,未来工作方向决定算法和数据结构必须要夯实;
- 算法或数据结构涉及逻辑思维,自己工作后对底层思维训练很感兴趣。而它提供一种锻炼方式。
- 根据知乎回答建议,先按照顺序走,主要熟悉和记忆其中的算法思路和数据结构应用。
- 180824 调整为,按<题库顺序+标签类别>做题。即数据结构类型专项练习。
-
查找(180824-
1)哈希表使用(1-15-16-18-454)
-
unordered_map
-
upper_bound\lower_bound 与指针的搭配
2) 二分查找(34-35-374-278-74-240)
- 180908 关于二分查找的算法,要注意范围的确定问题。容易迷糊。可对比第34-35两道题目。(34题需要再研究下)
- 注意点:二分查找取中间值应该写成 mid= low+(high-low)/2, 写成mid=(low+high)/2,会有溢出问题。
-
-
树
- 二叉树遍历 (144-94-145-102-107-103-99?-94-144-145?-100-101-110-114-117-116)
- 二叉树创建(105-106)
- 二叉树查找
- 二叉树递归
-
链表
- 单链表(83-82-445-2)
-
高级参考:简练干净高效
-
主要类比:底层的思想,适合新手
-
偶尔:思路分析