题目:把一个含有N个元素的字符串右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。
例子:
字符串为:abcd1234,右移4位,结果变为:1234abcd
思路:
移动前跟移动后是有两段的顺序是不变的,所以可以把这两段看成两个整体
右移K位的过程就是把数组的两部分交换一下。
交换的过程:(1)逆序排列第一部分
(2)逆序排列第二部分
(3)再全部逆序!
...
分类:
编程语言 时间:
2015-01-25 18:16:08
阅读次数:
210
数组循环移位要求:设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。不合题意的解法如下:我们先试验简单的办法,可以每次将数组中的元素右移一位,循环K次。abcd1234→4abcd123→34abcd12→234abcd1→1234abcd。版本...
分类:
编程语言 时间:
2014-12-25 23:25:17
阅读次数:
199
问题:给定两个字符串s1和s2,要求判断s2是否能够被通过s1做循环移位(rotate)得到的字符串包含。例如,S1=AABCD和s2=CDAA,返回true;给定s1=ABCD和s2=ACBD,返回false。看到 这里的一个思路 字符串移位包含的问题(编程之美)引用原文“ 解法二:我们也可以对循...
分类:
其他好文 时间:
2014-11-26 16:25:44
阅读次数:
134
题目地址:Minimum Inversion Number题目大意: 求逆序对数,求循环移位后逆序数的最小值,意思一次将第一位移到最后一位,然后计算逆序对数,求出最小的那个。解题思路: 数组数组。 线段树代码。代码: 1 #include 2 #include 3 #inclu...
分类:
其他好文 时间:
2014-10-30 22:34:07
阅读次数:
321
字符串循环移位。时间复杂度和空间复杂度都为O(1),三种方法。...
分类:
其他好文 时间:
2014-10-27 19:34:09
阅读次数:
160
Problem Description
人随着岁数的增长是越大越聪明还是越大越笨,这是一个值得全世界科学家思考的问题,同样的问题Eddy也一直在思考,因为他在很小的时候就知道亲和串如何判断了,但是发现,现在长大了却不知道怎么去判断亲和串了,于是他只好又再一次来请教聪明且乐于助人的你来解决这个问题。
亲和串的定义是这样的:给定两个字符串s1和s2,如果能通过s1循环移位,使s2包含在s1中,那么...
分类:
其他好文 时间:
2014-10-21 21:37:09
阅读次数:
177
leetcode上的一道题 题意大致是:给定一个循环移位后的排序数组,求数组的最小值 抛开假设不谈,实际上就是一个求数组最小值的问题,可以o(n)扫一遍记录最小值;也相当于求[0,vec.size()-1]的区间最小值问题,可以转化成线段树树状数组处理 本问题的假设可以利用:数组是“片段”有序的,可...
分类:
其他好文 时间:
2014-10-20 14:56:04
阅读次数:
143
这是一个很经典的题目,题目的大概意思是这样的: 有一个存储字符串的数组,需要按照要求循环移动数组中的字符,例如,数组中存储字符 abcd1234,循环右移4位,之后,会得到这样一个字符数组 1234abcd,当然,左移也是同样的解法 想想这个问题不是很难,顺序依次移动就可以了,这样做的话,时间复杂度是O(n2)量级的,那么,有没有更快的方法呢? 首先,我们需要对数组的...
分类:
编程语言 时间:
2014-10-16 17:33:32
阅读次数:
204
题目地址:Minimum Inversion Number题目大意: 求逆序对数,求循环移位后逆序数的最小值,意思一次将第一位移到最后一位,然后计算逆序对数,求出最小的那个。解题思路: 因为是序列0->n-1区间的数,所以当你求的,它给出的a1.a2...an-1的逆序对数时cnt,推出如果移位.....
分类:
其他好文 时间:
2014-10-07 17:30:13
阅读次数:
235