Java
文章平均质量分 92
麻辣牛蛙烩白兔
这个作者很懒,什么都没留下…
展开
-
KMP算法整理
一、KMP算法的作用减少常规暴力算法中不必要的回溯。二、明确什么是字符串的前缀、后缀以下面字符串str举例a a b d a a b前缀后缀abaaabaabaabaabddaabaabdabdaabaabdaaabdaabaabdaabaabdaab三、减少回溯的方式通过使用next数组,使得被模板字符串和主...原创 2019-11-17 14:07:36 · 307 阅读 · 0 评论 -
并查集和DFS实现船问题(连通性判断)
题目如下,判断下列矩阵中船的个数(连续的相同数据称为一条船)例如如下矩阵0 0 1 11 1 0 00 1 0 0会输出两条船,这里的两条船分别指的是下图中的粗体部分和斜体部分0 0 1 11 1 0 00 1 0 0那么我们如何做到判断他们的连续情况呢。方法一DFS法(递归法)DFS方法就是我们所谓的递归方法,我们在考虑一个数据周围的数据是否和他相同,从而实现连通。所以我们最...原创 2019-10-24 18:58:18 · 1451 阅读 · 0 评论 -
二叉树、二叉树的建立及其前、中、层序遍历
一、什么是二叉树二叉树是数据结构中较为重要的一部分内容。二叉树常被用于实现二叉查找树和二叉堆。在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”。根据不同的用途可分为:1、完全二叉树——若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。2...原创 2019-10-16 16:43:43 · 267 阅读 · 0 评论 -
数据结构与算法初学——对数器与排序篇—01
一、冒泡排序冒泡排序是排序算法中最简单最暴力的算法,他主要的排序方式是将所排列的数据,两个两个进行比较,然后将较大的数(或较小的数)一点一点的排到最后一个,由于比较的过程中,最大数(最小数)移动的趋势像是冒水泡一样,所以叫冒泡排序。比如我们现在获得一组数据{3,1,6,5,4,7},我们下面对这组数据进行排序演示。首先,我们将3与他的下一个数据1相比较,我们发现3>1,所以我们将3与1...原创 2019-09-26 21:55:43 · 165 阅读 · 0 评论 -
数据结构与算法初学——排序篇02
一、鸡尾酒排序鸡尾酒排序是冒牌排序的一个改良版,与冒泡排序相不同的是鸡尾酒排序是运用双指针,一个指针(以下称为start指针)从左向右遍历另一个指针(以下称为end指针)从右向左遍历,在遍历的过程中,end指针如果遇到比自己大的数,就与他交换位置,把较大的数放在后面,start指针则相反,在遍历过程中,如果遇到比自己小的数就把他交换到前面。经过一次排序后我们可以确保这组数中最大的数在n-1的位置...原创 2019-09-29 16:58:18 · 157 阅读 · 0 评论