![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
kerer-sk
这个作者很懒,什么都没留下…
展开
-
KMP模式匹配算法
KMP是字符串匹配中的一个算法,目的是快速在一个较长字符串中匹配出和给定字符串相等的子串。 朴素算法 常规的匹配算法又称为朴素字符串匹配,主要是通过逐个位置比较,不相等时进行回溯,主串从开始匹配的位置前进一个字符位置然后和要匹配的字符串第一个位置继续进行比较。 例如: 主串:S=”abcdefgh…” 模式串:T=”abcdefx” 朴素的匹配算法匹配时,先从S串和T串第一个位置依次匹原创 2017-02-28 16:55:07 · 247 阅读 · 0 评论 -
幸运的袋子
一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。 例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3 你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。现在让你编程计算一下你可以获原创 2017-08-12 11:14:00 · 764 阅读 · 0 评论 -
排序
排序算法主要有 冒泡排序(时间复杂度为O(n^2)) 选择排序(时间复杂度为O(n^2),单比冒泡排序稍微好点,主要是交换次数少) 直接插入排序(时间复杂度为O(n^2),比选择排序稍微好点) 希尔排序 堆排序 归并排序 快速排序原创 2017-07-28 14:30:40 · 184 阅读 · 0 评论 -
大数问题-打印1到最大的n位数
问题描述输入数字n,按顺序打印出从0到最大的n为十进制数。比如输入4,则需要输出0,,1,2,3,···, 9999思路需要注意两点: 直接使用int或long类型,当n比较大时会溢出 如何快速的判断出到达了最大的n位数 为解决第一点,我们需要使用字符串模拟加法,这样就不会溢出。第二点快速判断到达最大n位数,只需要我们对每次进位位进行判断,看进位位是否是最高位,如果是表示已经到了最大n位数。代码实现原创 2017-07-05 23:15:46 · 529 阅读 · 0 评论 -
排列组合(一)全排列
问题描述输出一个字符数组元素的全排列 如输入:'a','b','c' 结果:a,b,c b,a,c c,b,a a,c,b b,c,a c,a,b 6解决思路这个问题是一个全排列问题,数学计算为A(n,n)。数学思路为,n个元素,第一位可以为n种可能,第二位可以有n-1种可能,以此类推所以全排列的种类一共有n!个。 以此为思路,我们可以原创 2017-07-05 22:40:15 · 3104 阅读 · 0 评论 -
二叉树深度
求二叉树深度class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } // 方式一 class Solution { public int TreeDep原创 2017-08-07 23:29:41 · 276 阅读 · 0 评论