![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 85
算法
SmartYG
这个作者很懒,什么都没留下…
展开
-
Manacher算法
Manacher算法: 在一个字符串中找到最长的回文字串例如:abc12321def 最长回文字串为12321传统思路是遍历每个字符,以此字符为中心向两边扩,看两边的字符是否相等,如果是回文串的长度是奇数的话,可以往两边扩,如果是偶数的话(例如1221)则不行!因此需要加特殊字符,例如(1221—>改为#1#2#2#1#)而且传统思路的时间复杂度比较高。如原始数据为N,...原创 2018-04-06 00:37:13 · 284 阅读 · 0 评论 -
约瑟夫环的链表实现
已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列(这就是约瑟夫环问题)如何解决:我第一时间想到的是用环形链表。假设有N人,报的数为M,则第一次第一个人为头,则第M人出列,接着以M+1为头,(M+1+M)淘汰,在还剩一个人之前,循环下去。链表实...原创 2018-04-06 10:48:22 · 882 阅读 · 1 评论 -
荷兰国旗问题
已知一个整型数组arr,和一个整数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。 要求:时间复杂度为O(N),额外空间复杂度O(1)。这是属于快排的一种思想基础:给一个数r,如何把小于等于的数放在左边,把大于的数放在右边假设有一个数组 arr-> 6 5 3 5 7 2 则设小于等于设一个左边界 ,左边...原创 2018-07-24 17:28:17 · 207 阅读 · 0 评论 -
已知一个整型数组arr,数组长度为size且size大于2,arr有size-1种 可以划分成左右两部分的方案
已知一个整型数组arr,数组长度为size且size大于2,arr有size-1种 可以划分成左右两部分的方案。比如: arr = {3, 2, 3, 4, 1, 2}第1种划分左部分为[3],右部分为[2, 3, 4, 1, 2]第2种划分左部分为[3, 2],右部分为[3, 4, 1, 2]第3种划分左部分为[3, 2, 3],右部分为[4, 1, 2]第4种划分左部分为[...原创 2018-07-24 18:37:17 · 1083 阅读 · 0 评论 -
寻找局部最小
定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0]<arr[1],那么arr[0]是局部最小;如果 arr[N-1]<arr[N-2],那么arr[N-1]是局部最小;如果0<i<N-1,既有arr[i]<arr[i-1],又有arr[i]<arr[i+1],那么arr[i]是局部最小。给定无序数组...原创 2018-07-24 19:11:51 · 450 阅读 · 0 评论