概要
本篇博文记录的是本人自己在刷算法题的一些心得。首先个人感觉拿到一道算法题的时候不要着急地想要通过暴力解法去解决,一般情况下,暴力解法虽然也有可能得到算法题的正确答案,但通常这种方式的解法都比较耗费运行内存与时间。
解题思路
拿到一道算法题,首先要把这个算法的问题归类,比如:排序问题,图的最短路径,最小生成树等等,当然,这是建立在你本身数据结构与算法的基础扎实的基础上。不得不说把算法的核心问题进行归类,对整道题的解题思路都有一个明确的方向,而不是逐字逐字地抠题目。
其次,对算法问题的归纳也很重要,要懂得抽取核心关键字并且转化成数学或编程语言来表示,并且要对现实对象抽象成计算机语言。对于一道算法题的解法,中间变量的使用个人觉得非常重要,要懂得用中间变量(状态量)来表示某个问题的中间过程。
此外,对于比较复杂的算法问题,要懂得复杂问题简单化,抽取该问题中的中间几个过程进行分析,并且找出这几个过程的重复步骤,从而找出规律,如果对于一个问题,感觉从它的开始阶段很难理解的话,不如尝试一下从它的中间状态去理解。
以上就是本人作算法题时的一些心得,仅供参考。