不知不觉就要到大三了,也玩过很多东西,但总感觉缺乏新的挑战,到达了一个瓶颈。
于是想要隐居深山,闭关修炼,回到计算机的本源,更多跟深地去死磕自己从前从来没有好好去探索的CS领域,SO HERE I AM,
不知不觉就要到大三了,也玩过很多东西,但总感觉缺乏新的挑战,到达了一个瓶颈。
于是想要隐居深山,闭关修炼,回到计算机的本源,更多跟深地去死磕自己从前从来没有好好去探索的CS领域,SO HERE I AM,
manacher 俗称马拉车算法,也是本文的主角,是一种能够将最长回文串的求解复杂度降低到 O(N) 的一种高效算法,
当我第一次见到求解最长回文串的题目时,首先采用的就是暴力解法,O(N平方) 复杂度遍历所有可能的串,然后再用 O(N) 的时间来求回文串的最大长度,使用 map 存储各个下标对的回文情况尽管能减少一部分计算,
但是显然这种方式时间复杂度过高,部分 case 容易超时
这种算法的大概思路如下:
题目:
长度为n的数组乱序存放着0至n-1,现在只能进行0与其他数的交换,请排序这个数组