记算法思维

Posted happy-medge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记算法思维相关的知识,希望对你有一定的参考价值。

目的

其实就是想总结一下自己做题中用到的思考方式,虽然我知道即使写了也没用??(还是要靠多多刷题)。本文纯粹瞎写。

正文

模拟思维:

模拟思维是最常见的做题方式:按照题意和样例的操作,一步步模拟过程,从中理解到问题的本质。一般看不懂题目也需要进行合理的模拟进行突破,或者直接通过模拟得出答案。

暴力思维:

暴力思维就是对于数据量小的题目,可以枚举所有状态来得到答案。涉及到的知识:dfs,状压dp。

排序思维:

排序思维就是对于题目给出的数据,经过一定的排序后,可以在复杂度较低内解决题目的问题。而且,很多题目都是要先排序后才能对数据进行处理。涉及到的知识:c++ stl sort,莫队。

贪心思维:

贪心,是在每一步选择中采取优先策略,从而得到答案的思维。前提是:要保证每一步采取这个优先策略肯定是得到正确的最优解。涉及到的知识:dijkstra算法,最小生成树。

分解思维:

分解,一般是对于复杂的问题,可以分解成小问题(子问题),然后从这些子问题来推出最终问题的答案。涉及到的知识有:动态规划,分治,分块。

优化思维:

优化思维一般是碰到直接做题目复杂度高的情况,这时需要进行时间的优化。当然排序是最简单的优化,除此之外,还有利用前缀和,数据结构的优化。涉及到的数据结构:栈(包括单调栈),队列(包括单调队列),堆(或者优先队列),线段树(简单形式:树状数组),并查集。

想说的话

其实上面的思维都是基础的东西,关键还是要自己多学相关算法和多做相关题目,才能得到实际的提高(不过,对于新人(以前没参加过算法竞赛)来说我觉得上面是必须要了解的思维,不然做题效率很慢??)

暂更???

以上是关于记算法思维的主要内容,如果未能解决你的问题,请参考以下文章

AI记单词,人工智能记单词。

玩转算法面试 从真题到思维全面提升算法思维

玩转算法面试 从真题到思维全面提升算法思维

浅谈JVM GC三色标记算法

算法的分层(认知建模)模型---算法的逻辑与计算思维

JVM垃圾回收的“三色标记算法”实现,内容太干