
数据结构与算法
文章平均质量分 57
数据结构与算法
AIMaynor
个人博客:maynor1024.live,ai网站: vlink.cc/maynorai
展开
-
数据结构填空题专项.docx
采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组。开始,自顶向下、自左向右对一棵二叉树进行顺序编号,则编号为。的结点,若它存在左、右孩子,则左、右孩子编号分别为。条边的无向图存储在邻接矩阵中,则非零元素的个数是。条边的有向图存储在邻接矩阵中,则非零元素的个数是。个元素的顺序表中删除一个元素,需要平均移动。为哈夫曼树的叶子结点数目,则该哈夫曼树共有。串是任意串的子串,任意串是其自身的子串。个元素,其中具体移动的元素个数与。个顶点的无向图,边的总数最多为。个结点的二叉树,当它为一棵 满。原创 2024-05-13 15:13:01 · 521 阅读 · 0 评论 -
数据结构与算法基础知识
六大排序算法1. 直接插入排序• 具体做法是:在插入第 i 个记录时,R1,R2,… ,Ri-1已经排好序,将记录Ri 的关键字 ki 依次与关键字 ki-1,ki-2,… ,k1进行比较,从而找到 Ri 应该插入的位置,插入位置及其后的记录依次向后移动。例:待排序列:35 12 67 29 51第1步:35第2步:12 35第3步:12 35 67第4步:12 29 35 67第5步:12 29 35 51 67123456782. 冒泡排序。转载 2024-05-13 14:38:56 · 81 阅读 · 0 评论 -
数据结构基础题复习-第02套
BCCCCCDAACBBDACABCD3BADACDACADC。原创 2024-04-15 15:23:52 · 199 阅读 · 1 评论 -
数据结构基础题复习
(2)对二叉树的结点从0开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( C )遍历实现。(2)对整数序列 5, 3, 6, 2, 8, 4作从小到大排序,经排序算法一次处理后,该序列变成4, 3, 2, 5, 8, 6。分析:按照上面的定义,一个深度为k的完全二叉树,前k-1层是满二叉树,总结点数为2k-1-1,所以这里k取9, 29-1-1=255,最后第k层只有一个结点。所以叶结点有n+1个,总的结点数为2n+1。原创 2024-04-14 16:49:59 · 895 阅读 · 0 评论 -
经典折半查找算法
本文完整阅读需要的基础知识:循环结构,数组,函数,递归。n个由小到大排好序的数,再给一个数x,判断这个数在数组中有没有出现过,如果有,就输出这个数在数组的位置,没有就输出”NO”. 样例:输入:6 //以下有6个数 1 4 6 8 9 10 9 //要找的x 输出: 5 //第5个数 方法:如果采用顺序查找,要经过5次才找到。而用折半查找,开始的比较区间是1-6, 先取中间一个数,即第3个数6,9比6大,说明在6的后面,下面就把区间变成4-6,取中间数,即第5个数9,正好找到,这样总次数变成2次查转载 2021-12-24 15:10:10 · 1928 阅读 · 0 评论 -
总结的数据结构小公式
文章目录完全无向图和完全有向图公式最小生成树矩阵:完全无向图和完全有向图公式将一个具有 n 个顶点 e 条边的无向图存储在邻接矩阵中,则非零元素的个数是 2e。对于一个具有 n 个顶点 e 条边的有向图存储在邻接矩阵中,则非零元素的个数是 e。1.完全无向图:n个顶点的完全无向图的边数= n(n-1)/22.完全有向图: 完全有向图的边数=n(n-1)3. 举例1:有10个顶点的无向连通图边的数量最少是( 9 )个,最多是( 45 )个4. 举例2:有10个顶点的有向连通图原创 2021-12-20 13:23:14 · 7004 阅读 · 4 评论 -
「LeetCode」剑指 Offer 40. 最小的k个数
剑指 Offer 40. 最小的k个数输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2 输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1 输出:[0]class Solution { public int[] getLeastNumbers(int[] arr, int k) {原创 2021-08-15 16:41:03 · 300 阅读 · 0 评论 -
「LeetCode」142. 环形链表 II
环形链表 II给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释:链表中.原创 2021-07-30 16:44:03 · 442 阅读 · 0 评论 -
「LeetCode合集」链表(List)及经典问题
开头大家好,我是程序员manor,我希望自己能成为国家复兴道路的铺路人,大数据领域的耕耘者,平凡但不甘于平庸的人。暑假也不能懈怠~白天搞项目,晚上肝力扣,睡前背背面试题大数据领域卷王第一人本码农是也~~链表相关知识:链表基础:链表应用:LeetCode的链表合集「LeetCode」141. 环形链表「LeetCode」202. 快乐数「LeetCode」206. 反转链表「LeetCode」92. 反转链表 II「LeetCode」25. K 个一组翻转链表「Le.原创 2021-07-30 12:31:53 · 810 阅读 · 5 评论 -
「LeetCode」622. 设计循环队列
设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列为空,返回 -1 。原创 2021-07-30 11:28:29 · 385 阅读 · 0 评论 -
「LeetCode」82. 删除排序链表中的重复元素 II
删除排序链表中的重复元素 II存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。返回同样按升序排列的结果链表。示例 1:输入:head = [1,2,3,3,4,4,5]输出:[1,2,5]示例 2:输入:head = [1,1,1,2,3]输出:[2,3]题解:/** * Definition for singly-linked list. * public class ListNo.原创 2021-07-29 17:40:52 · 366 阅读 · 1 评论 -
「LeetCode」83. 删除排序链表中的重复元素
删除排序链表中的重复元素存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。示例 1:输入:head = [1,1,2]输出:[1,2]示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3]题解:/** * Definition for singly-linked list. * public class ListNode { * int val; * .原创 2021-07-29 17:28:56 · 379 阅读 · 0 评论 -
「LeetCode」19. 删除链表的倒数第 N 个结点
删除链表的倒数第 N 个结点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]/** * Definition for singly-linked list. * public class ListNode {.原创 2021-07-29 17:21:52 · 315 阅读 · 0 评论 -
「LeetCode」24. 两两交换链表中的节点
两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]题解:/** * Definition for singly-linked list. * public class ListNode { * int val;.原创 2021-07-29 16:57:23 · 300 阅读 · 0 评论 -
「LeetCode」61. 旋转链表
旋转链表给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例 2:输入:head = [0,1,2], k = 4输出:[2,0,1]题解:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * .原创 2021-07-29 16:43:54 · 319 阅读 · 0 评论 -
「LeetCode」25. K 个一组翻转链表
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]示例 2:输入:head = [1,2,3,4,5], k = 3输出:[3,2,1,4,5]原创 2021-07-29 15:57:24 · 399 阅读 · 0 评论 -
「LeetCode」92. 反转链表 II
反转链表 II给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例 2:输入:head = [5], left = 1, right = 1输出:[5]提示:链表中节点数目为 n1 <= n <= 500-.原创 2021-07-11 15:57:17 · 373 阅读 · 0 评论 -
「LeetCode」206. 反转链表
反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?思路:将链表分为两部分,分别是原链表和.原创 2021-07-11 15:36:31 · 412 阅读 · 1 评论 -
「LeetCode」202. 快乐数
编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 true ;不是,则返回 false 。示例 1:输入:19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1示例 2:输入:n = 2原创 2021-07-10 18:15:22 · 393 阅读 · 0 评论 -
「LeetCode」141. 环形链表
题目描述:给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?示例 1:输入:head = [3,2,0,原创 2021-07-06 22:14:25 · 467 阅读 · 3 评论 -
复杂度分析(算法训练营开课准备笔记)
其实,只要讲到数据结构与算法,就一定离不开时间、空间复杂度分析。而且,我个人认为,复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。如何分析、统计算法的执行效率和资源消耗?为什么需要复杂度分析?1. 测试结果非常依赖测试环境测试环境中硬件的不同会对测试结果有很大的影响。2. 测试结果受数据规模的影响很大后面我们会讲排序算法,我们先拿它举个例子。对同一个排序算法,待排序数据的有序度不一样,排序的执行时间就会有很大的差别。极端情况下,如果数据已经是有序的,那排序算原创 2021-06-03 22:25:04 · 387 阅读 · 0 评论 -
[新星计划] 为什么要学习数据结构和算法?如何学习?
isAdemo原创 2021-06-03 22:17:41 · 1213 阅读 · 11 评论