![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
qq_16087027
这个作者很懒,什么都没留下…
展开
-
给定一个字符串S,对字符串循环左移m位,要求时间复杂度为O(n),空间复杂度为O(1)
分析:首先,循环左移的意思类似于二进制串的循环左移,对于给定的字符串S(此处的字符串仅是指字符组成的串,并不是指编程语言中的字符串类型,因为大部分编程语言中的字符串类型是无法对字符串的某一字符进行修改的,只能对整个串进行修改),如S=‘abcdefghijkl’,对其循环左移3位,则变为S=‘defghijklabc’。通过对例子分析,循环左移3位等价于循环右移了len(S)-3=9位。其次,其...原创 2018-11-24 16:52:31 · 1520 阅读 · 0 评论 -
求两个字符串的最长公共子序列Longest Common Sequence(LCS)
题目分析:首先需要理解题目中几个名词的含义。(1)子序列的含义:一个序列S,任意删除若干个(可为0个)字符后得到的序列C,则C称为S的子序列(2)最长公共子序列定义为两个序列的公共子序列中最长的一个或若干个。(3)任意两个序列X和Y,至少存在一个公共子序列"空",即‘’。假设已知给定的序列为X和Y,长度分别为m和n。解法1:暴力穷举法思路:因为要求的是两个串X和Y的最长公共子序列,因...原创 2018-11-28 22:48:14 · 3641 阅读 · 0 评论 -
第一个缺失的整数
第一个缺失的整数给定一个长度为N的数组A[0,…N-1],从1开始,找到第一个不在数组中的正整数。如 3,9,8,1,6,32,输出为2。思路:求解该问题可以有三种策略,分别是暴力破解法、bitmap法和循环不变式方法。方法1—暴力破解法:看到这个题后,既然是找从1开始第一个不在数组A中的正整数,那最简单最直接的反应就是我能否可以从1开始,在A中查找这个数是否存在,若存在则找下一个正整...原创 2019-01-20 15:36:08 · 586 阅读 · 0 评论 -
数组最大间隔问题
给定整数数组A[0,1,…,N-1],求这N个数排序后的最大间隔,如给定:1,4,9,3,10,20,其最大间隔为10。显然,如题所示,可对给定数组进行排序,然后对排序后的结果遍历一遍,相邻两数之间的最大差值即为所求。那是否有其它更好的方法呢?首先,我们先引入点儿数学知识:假设,对于N个正整数,其中最大值和最小值分别为Max,Min,则形成了N-1个间隔,如果这N个数完全均匀分布,则间距全...原创 2019-01-20 17:08:38 · 1725 阅读 · 0 评论