基础算法学习
dddwwwwwwwwwwwwwww
这个作者很懒,什么都没留下…
展开
-
将数组循环右移k位
将数组移位就相当于将两部分序列交换位置,于是将数组移位转换为三次反转操作,如123456右移2位结果为561234,过程:分别将1234和56反转为4321和65,之后对反转结果432165做一次反转结果为561234,java代码如下://将数字数组循环右移k位 public class shuzuxiwei { public static void yiwei(int k,int原创 2015-10-23 10:24:46 · 628 阅读 · 0 评论 -
字符串a是否是字符串b移位结果的子字符串
判断字符串a是否是字符串b循环移位结果的子字符串,有两种方法如下: 对于优化解法,b的所有循环移位结果都是b+b的子字符串。优化解法分别对循环移位和子字符串匹配进行了优化,由于contains函数的时间复杂度是O(mn)(查看jdk源码可知),所以用kmp算法(O(m+n))替换,可提高算法整体效率。//判断字符串a是否是字符串b循环移位结果的子字符串public class yiweiresu原创 2015-10-23 11:35:35 · 404 阅读 · 0 评论 -
区间重合判断
一个源区间和n个无序的目标区间,判断源区间是否在目标区间内。 方法一: 直接的思路,将源区间和无序目标区间投影到坐标轴上,如果所有源区间都被覆盖,则源区间在目标区间内。import java.util.ArrayList;import java.util.Scanner;class qujian{ int s; int e;}public class qujianpandu原创 2015-10-24 17:23:09 · 485 阅读 · 0 评论