首页 > 大家做算法题的思路?(讨论)

大家做算法题的思路?(讨论)

无论你是做题目还是生产应用,只要是开发,总会遇到一些需要算法的情景。
最近在刷leetcode,自己小结了一下在做算法题题时的思路,希望可以抛砖引玉

在遇到一个题目的时候,我一般会按照正常的思路去实现一次,可能会导致有很多的循环,很多的临时变量,即时间和空间复杂度都比较大,这个先不要紧。然后按照以下的步骤去优化:

  1. 首先是语言层面:比如有无一些系统内置的方法,优于你手写的代码,如果有,代替之。

  2. 然后是数据结构层面:这涉及到一些trick。比如有很多情景用求模会是一个优化。或者用双指针,能把复杂度从O(n^2)变成O(n)。这一点的积累空间非常的大,刷题也主要是积累这一部分(不知道对不对)

  3. 最后是数学层面,这一部分难道比较大,反正本人比较渣。之前有看到过一个例子是,一道很复杂的题,一用上了向量,就变得非常简单。

我以前一直以为所有的算法题都有一些O(1)的奇技淫巧,比如这个 https://leetcode.com/problems/add-digits/ 。后来渐渐发现不全是,特别是自己做了一篇,然后看一下大家的解法和自己的差别时。

以上是我自己的小结,大家有没有这方面的经验来交流呢?


刻意训练,熟能生巧


学动态规划和回溯法时简直头晕,可惜现在全忘了

【热门文章】
【热门文章】