一、思路流程
和做数学题一样
目做(算法)
- 设计解决问题的解决算法:把这道题/这个问题的解决思路想清楚!
- 算法的本质:寻找规律并实现
- 如何寻找规律:发现输入和输出的关系,寻找突破点
手做(数据结构)
实现 = 编码 + 调试
- 动手实现,要想好用那些数据结构来实现上面的“目做”的思路
- 可以将一个问题分解成小的功能(划分函数),一个一个功能解决之!
- 不要思路不明确就进行写代码实现,不然到后面的调试会很复杂,就出现了那种“修水管”那张滑稽图一样
脑做(体系)
- 回顾知识点,充实知识体系
- 学过的数据结构要清楚理解他的常用操作,学完就要将其“封装”好,用的时候才能更好的用,还有写题过程中,要总结“错题”(和学数学一样),这样下次才不会被同一个问题卡住,要学会总结
二、解法总结
解法总结
SOP
暴力解法(内置API)
最直观的解法
暴力解法(穷举算法)
分类讨论
字符串类的
- 内置API
- 正则表达式
链表类
- 双指针
- 头部加一个虚拟节点
给定双指针,同向移动、相向移动、背向移动等处理
子问题叠加类
- 分治算法(子问题不重叠)
- 动态规划算法(子问题重叠)
- 贪心算法
- 穷举算法
递归算法
适用于递归解决的问题通常有两个特点:
- 递归性:能将规模为n的问题简化为n-1的问题,并且规模为n的问题和规模为n-1的问题性质一样
- 可终结性:不能无限递归下去,小到一定程度能够得出结果
eg:前n个自然数的和、n个数之和这两个问题就可以用递归来解决
三、前端
- 技术选型
- UI结构分块,可以参考React设计哲学(步骤一:将 UI 拆解为组件层级结构 )
- 数据结构设计
树下留言
LET’S TALK文字是一次相遇。很高兴听到你的声音。