摘要: 题目: 给出一个元素无序的数组,求出一个数,使得其左边的数都小于它,右边的数都大于等于它。 举例:1,2,3,1,2,0,5,6,返回下标6(数字为5)。 思路(1): 朴素算法,对于每一个数,都检测它的左边和右边是否满足题意。 时间复杂度为O(n^2) 思路(2) 使用变量求解: (1)目前找到符 阅读全文
posted @ 2017-05-14 19:47 lmjy 阅读(279) 评论(0) 推荐(0) 编辑
摘要: Manacher 算法是时间、空间复杂度都为 O(n) 的解决 Longest palindromic substring(最长回文子串)的算法。回文串是中心对称的串,比如 'abcba'、'abccba'。那么最长回文子串顾名思义,就是求一个序列中的子串中,最长的回文串。本文最后用 Pyth... 阅读全文
posted @ 2017-05-14 19:28 lmjy 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 在一个字符串中要到最长的回文子串,有如下方案,代码在最后。 最长回文子串的相关博文 1、暴力法 最容易想到的就是暴力破解,求出每一个子串,之后判断是不是回文,找到最长的那个。 求每一个子串时间复杂度O(N^2),判断子串是不是回文O(N),两者是相乘关系,所以时间复杂度为O(N^3)... 阅读全文
posted @ 2017-05-14 19:11 lmjy 阅读(612) 评论(0) 推荐(0) 编辑