随笔分类 - 数据结构
摘要:题目:题目链接 题意:给出一个链表和一个整数k,要求链表每k个节点反转一次,如果最后剩余不足k个节点,则不反转。 思路:数据结构链表基础题,注意边界控制就好。 PS:最近一段时间应该都会用Java做题了,Java学的太烂了,这么一道题还要各种查Java基础知识。 ac代码: 1 class Solu
阅读全文
摘要:题目:题目链接 题意:给出k个有序链表,返回一个合并后的有序链表。 思路:显而易见,每次遍历这个k个链表的表头,哪个最小就加入答案链表即可得到正确结果,但是这样做复杂度是爆炸的,对k个链表表头遍历一遍智能解决一个结点的排序问题,效率低下。 我们可以想到数据结构课程上学到的两个有序链表合并的问题,只需
阅读全文
摘要:题目:题目链接 题意:有编号从1到n的n个球和n个杯子. 每一个杯子里有一个球, 进行m次排序操作,每次操作给出l,r. 如果l<r,将[l,r]范围内的球按升序排序, 否则降序排, 问中间位置的数是多少. 思路: 暴力复杂度为m*nlog(n), 不能暴力排序 二分答案, 对于当前mid, 我们将
阅读全文
摘要:在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。 “紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即
阅读全文
摘要:有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。 输入格式: 输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤
阅读全文
摘要:胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人。假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁。 输入格式: 输入首先给出两个正整数N(≤106)和M(≤10),其中N为总人数,M为需要找出的大富翁数;接下来一行给出N个人的个人资产值,以百万元
阅读全文
摘要:将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。 输入格式: 输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。 输出格式: 将输入的N个正整数顺序插入一个初始
阅读全文
摘要:因为排序二叉树的有序性,建立与查询都不是很难,唯一的难点是删除结点的操作,删除节点且要保证该树仍为二叉树且仍满足有序的性质 二叉树的删除操作主要有三种情况: 所删除的节点是叶子节点,这样就可以先遍历这个树,然后找到需要删除的节点,把它free掉就好 所删除的节点只有一个左子结点,或者只有一个右子结点
阅读全文
摘要:总结下二叉树的已知两种遍历方式求第三种遍历顺序的方法,已知先序和中序遍历或者后序与中序遍历后二叉树是唯一确定的,下面介绍怎么求出第三种遍历顺序。 先序遍历顺序为:根结点——左子结点——右子结点,中序遍历为:左子结点——根结点——右子结点,我们注意到,先序遍历的第一个元素就是二叉树根结点,我们在中序遍
阅读全文
摘要:在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。对于二叉树,有先序、中序和后序三种方法,而每一种遍历方法又分为递归遍历与非递归遍历,因为树的定义本身就是递归定
阅读全文
摘要:为什么要对矩阵进行压缩存储呢?对于一个n*m的矩阵,我们一般会想到开一个n*m的二维数组来存储,这样计算操作都很方便模拟,但当一个矩阵很大时,这样对于空间的开销与浪费是很可怕的,尤其是当矩阵变成多维时。但我们往往不会在矩阵每一个位置都存有数据,很多矩阵元素其实是0,我们需要记录的只是那些非零元素,于
阅读全文
摘要:假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。 有些银行会给VIP客户以各种优惠服务,例如专门开辟VIP窗口。为了最大限度地利用资源,VIP窗口的服务机制定义为
阅读全文
摘要:用链表实现队列操作,代码如下:
阅读全文
摘要:RMQ(Range Minimum/Maximum Query),区间最值查询问题,是指:对于长度为n的数列A,回答若干次询问RMQ(i,j),返回数列A中下标在区间[i,j]中的最小/大值。 这里介绍Tarjan的Sparse-Table算法,预处理时间为O(nlogn),但查询只需要O(1),并
阅读全文
摘要:直接用栈模拟即可,数组可做,但因为这节数据结构是栈,为了期末考试还是手写一下栈的操作,值得注意的是,这道题用gets函数在PTA上会编译错误,用scanf("%[^\n]", str)会有一个样例无法通过,最后我使用了string读入数据,应该是我对scanf格式化读入不够了解,有知道的朋友可以评论
阅读全文

浙公网安备 33010602011771号