算法与数据结构
文章平均质量分 84
降温vae+
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
刷题(四)--栈和队列
判断出栈序列题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), pus原创 2021-08-07 13:26:51 · 269 阅读 · 0 评论 -
刷题(三)--String类
字符串空格替换题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例1:输入:s = "We are happy."输出:"We%20are%20happy."思路如下:由于每次替换都是把一个字符变成3个字符,使用字符数组可以方便替换。我们新建一个数组长度为原来3倍的新数组。从左到右遍历字符串,获得字符,如果是空格,把size位置为’%‘,size+1位置为’2‘,size+2为’0‘。不是空格直接就直接替换。代码:class Solution { pub原创 2021-07-28 13:06:57 · 172 阅读 · 0 评论 -
刷题(二)--链表
文章目录链表逆置合并两个有序单链表两个链表相交输出相交结点判断链表是否有环,输出入口节点删除数据使时间复杂度达到O(1)链表逆置合并两个有序单链表两个链表相交输出相交结点判断链表是否有环,输出入口节点删除数据使时间复杂度达到O(1)...原创 2021-07-26 14:06:58 · 167 阅读 · 0 评论 -
刷题(一)--数组
二维数组中的查找题目描述:在一个n*m的二维数组中,每一行都按照从左到右递增的顺序排序,每列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和整数,判断数组中是否含有该整数。示例:现有矩阵matrix如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ]给定target=5,返回原创 2021-07-25 15:08:24 · 819 阅读 · 3 评论 -
基础排序算法
文章目录希尔排序基本思想稳定性与复杂度排序过程代码实现快速排序基本思想稳定性与复杂度排序过程代码实现归并排序基本思想稳定性与复杂度算法描述代码实现堆排序大根堆和小根堆基本思想稳定性与复杂度代码实现简单排序算法希尔排序希尔排序(Shell’s Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因 D.L.Shell 于 1959 年提出而得名。希尔排序是把记录按下标的一定增量原创 2021-06-01 17:11:43 · 196 阅读 · 0 评论 -
AVL树
文章目录AVL树简介结点失衡LL右旋转RR左旋转LR先左旋再右旋RL先右旋再左旋code左单旋右单旋左平衡右平衡调整函数AVL树简介AVL树,即平衡二叉搜索树,可以看出,这和我们之前说的二叉搜索树只多出“平衡”二字。它的平衡就体现在,任何结点的左子树和右子树的高度最多差1。并且,插入结点后仍是AVL树。结点失衡我们对于节点平衡有这样的定义:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。而这里提到的高度差,就是我们下面会引入的平衡因子:BF(balan原创 2021-04-20 17:00:13 · 161 阅读 · 0 评论 -
BST树
文章目录BST树BST树的构造BST树BST树,二叉查找树(Binary Search Tree),又叫二叉搜索树、二叉排序树。它或者是一颗空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有的结点的值均小于它的根结点的值;若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值;它的左右子树也分别为二叉排序树二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一般会采用这种数据结原创 2021-04-20 16:31:40 · 722 阅读 · 0 评论 -
二叉树
文章目录二叉树简介二叉树的构造二叉树的创建根据前序和中序创建根据中序和后序创建二叉树的遍历前序遍历中序遍历后序遍历层序遍历“之”字型遍历二叉树简介二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分。二叉树的构造要构造一颗二叉树需要包含它的属性,值、左子节点、右子节点以及不同的构造方法。cl原创 2021-04-07 17:07:06 · 164 阅读 · 0 评论 -
二分查找及变形题目(Java)
文章目录二分查找的思想示例代码变形题目排序数组贪吃的小Q旋转数组的最小值二分查找的思想二分查找也称折半查找,是一种效率较高的查找方法。但是,折半查找要求线性表必须是顺序存储结构,而且表中元素按关键字有序排列。查找过程:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到原创 2021-03-31 17:30:29 · 278 阅读 · 0 评论
分享