当我们用计算机解决一个问题的时候,有三大方面
输入
处理
输出
输入的时候需要考虑,应该用什么样的数据结构来存储问题,这取决于很多方面,有问题本身的性质,和需要解决的问题的一些具体性质,每种数据结构都有所适合运用的方面,选取合适的数据结构非常重要,每种数据结构也有一些特定的在数据结构上所进行的操作,典型的数据结构有,线性表,栈,队列,树,图。其实我们在面试时遇到的需要解决的绝大部分问题都是基于线性表或者是树这两个数据结构进行存储的。而且绝大部分算法题,都是直接指明了所运用的数据结构,我们只需要设计算法就行了。
处理阶段,就是要考虑采用什么样的算法来解决问题,有一些具体的思想
分治法,贪心法,动态规划法,回溯法,分支限界法,当然还有暴力枚举法。
选好算法之后,用代码实现它,然后算完之后即输出。输出这个问题不大,至少在算法题范围内。