- 博客(70)
- 收藏
- 关注
原创 力扣刷题TOP101: 32.BM39 序列化二叉树
什么是序列化(Serialize)?将一棵二叉树转换为字符串,序列化是将树转换成线性结构的过程。什么是反序列化(Deserialize)?将序列化后的字符串恢复成原始的二叉树。
2024-12-13 23:29:42
673
原创 力扣刷题TOP101: 31.BM38 在二叉树中找到两个节点的最近公共祖先
这个任务目和上一题在二叉搜索树中找到两个节点的最近公共祖先有点类似,都是找最近公共祖先。但是区别在于一个有序一个无序。
2024-12-13 22:38:14
1177
原创 力扣刷题TOP101: 30.BM37 二叉搜索树的最近公共祖先
这个任务目是要在一棵二叉搜索树中找到两个节点(p 和 q)的最近公共祖先(LCA)。简单来说,最近公共祖先是指,p 和 q 在树中最近的一个共同的父节点。也可以理解成两个节点的路径在树中第一次相交的节点。
2024-12-13 21:50:52
374
原创 力扣刷题TOP101: 29.BM36 判断是不是平衡二叉树
什么是平衡二叉树(AVL 树)?1. 每个节点的左子树和右子树的高度差不能超过 1。2. 确保了在进行查找、插入和删除操作时,时间复杂度保持在O(log n),从而提高了数据处理的效率。
2024-12-13 20:34:54
557
原创 力扣刷题TOP101: 28.BM35 判断是不是完全二叉树
什么是完全二叉树?1. 每一层,除了最后一层,必须是满的。2. 最后一层的节点必须从左到右依次排列,不能有空缺。
2024-12-13 19:36:23
389
原创 力扣刷题TOP101: 27.BM34 判断是不是二叉搜索树
什么是二叉搜索树(BST)?1. 每个节点的值必须比其左子树的所有节点值大。2. 每个节点的值必须比其右子树的所有节点值小。3. 也就是说,树中的每个节点都有一个范围(区间)约束。
2024-12-09 21:41:11
603
原创 力扣刷题TOP101: 25.BM32合并二叉树
我们有两棵二叉树,目标是将这两棵树合并成一棵新的树,规则如下:1. 如果两个节点都有值,就把它们的值加起来,生成一个新的节点。2. 如果其中一个节点没有值(即为空),就直接返回另一个节点。3. 继续递归地合并两个树的左子树和右子树。
2024-12-09 20:29:02
364
原创 力扣刷题TOP101: 24.BM30 二叉搜索树与双向链表
这个任务是一棵 二叉搜索树(BST) 转换成一个 双向链表,并且要求不能添加新的节点,只能在原有的节点基础上调整指针,且返回链表中第一个节点的指针。我们可以利用 中序遍历 来实现这个转换,因为中序遍历二叉搜索树时,节点是按递增顺序访问的。
2024-12-09 19:45:48
842
原创 力扣刷题TOP101: 23.BM28 二叉树的最大深度
这个任务是计算二叉树的最大深度。树的最大深度指的是从树的根节点(最上面的节点)出发,走到最远的叶子节点(没有子节点的节点)所经过的最长路径的长度。
2024-12-09 17:59:57
411
原创 力扣刷题TOP101:20-22.BM23-25 二叉树的前中后序遍历
前序遍历、中序遍历 和 后序遍历 都属于 深度优先遍历(DFS, Depth First Search) 的一种方式。它们的核心是“沿着一条路径不断深入,直到到达叶子节点”,然后回溯到上一级,继续探索未访问的路径。三种遍历的区别在于访问节点的顺序。
2024-12-09 17:33:04
1133
原创 力扣刷题TOP101:19.BM22 比较版本号
这个任务是将两串数字补全位数逐位比较数字大小。在一场《好声音》比赛中,有两位选手,分别是选手A和选手B,他们都通过不同的音乐项目展示了自己的才华。这些项目包括了1音准、2节奏、3情感表达等方面,每个项目都有一个得分,分数由0到10表示,代表他们在这个方面的表现好坏。
2024-12-05 19:28:46
493
原创 力扣刷题TOP101:18.BM21 旋转数组的最小数字
这个任务是找到部分有序数组的最小值。你来到一家超市,这里的商品价格原本是按照顺序从便宜到贵摆放的,但有个手欠的人,把一部分商品挪到了前面,现在你想要找到最便宜的(最小值)。虽然顺序被打乱了,但你发现了超市的商品摆放仍然是部分有序的。你决定用二分查找法快速锁定价格最低的商品。
2024-12-05 16:57:52
432
原创 力扣刷题TOP101:16.BM19 寻找峰值
这个任务是找到数组中的峰值元素并返回其索引。假设你是一名探险家,来到了一片神秘的山脉。你的任务是找到其中的某个“山峰”(中间的山峰比两边的都高)并返回它的位置。你想快点爬到山峰打卡,所以采用一种高效的方法——二分查找。
2024-12-04 15:00:00
605
原创 力扣刷题TOP101:15.BM17 二分查找-II
这个任务是实现无重复数字的升序数组的二分查找。你在超市的货架上找一种特别的商品,它的价格是 100元(目标值)。超市的货架上,所有商品都按价格从低到高排列(有序数组)。你急着买东西,不想从头到尾一个一个看,而是选择一种高效的方法——二分查找。
2024-12-04 10:00:00
382
原创 力扣刷题TOP101:14.BM16 删除有序链表中重复的元素-II
这个任务是删除链表里重复的节点包含本身。可以看成是一个抽奖活动的系统升级。某人通过多种方式报名(节点不同),后台数据检测到这些人其实是同一个人(节点值相同)。为了公平抽奖并且惩罚该人,系统删除该用户的所有报名记录(所有重复节点),只保留那些唯一的报名用户。
2024-12-03 15:00:00
1102
原创 力扣刷题TOP101:13.BM15 删除有序链表中重复的元素-I
这个任务是删除链表里重复的节点,即去重。可以看成是一个抽奖活动中,某人通过多种方式报名(节点不同),后台数据检测到这些人其实是同一个人(节点值相同)。为了公平抽奖,系统保留该用户的第一个报名记录(第一个节点),删除其他重复记录(后续节点值相同的部分)。
2024-12-03 10:00:00
362
原创 数据结构之链表
链表像是火车车厢。想象你在火车站,看着一列火车。火车由许多个 车厢(节点)组成,每个车厢都包含 乘客(数据)。而每节车厢通过 车钩(指针)连接到下一节车厢,形成一条 火车路线(链表)。每个车厢都知道如何连接到下一个车厢。
2024-12-02 21:40:57
670
原创 力扣刷题TOP101:12.BM14 链表的奇偶重排
这个任务是将原链表的奇数下标全部排在偶数下标前面。这个操作很像两个top中学争夺生源,为了公平最后通过奇偶排名来分配(在我以前的高中就是这样)。把所有学生的中考成绩排名重新排列,奇数排名排在前面给第一家学校,偶数排在后面给第二家学校,学生信息保持不变。
2024-12-02 18:00:38
397
原创 力扣刷题TOP101:11.BM13 判断一个链表是否为回文结构
这个任务是判断链表正序逆序是否完全一致。即判断这个链表是否是对称的。可以理解为双折叠手机,怎么折都有面。折叠手机左右两边大小一定是一样的对称的。
2024-12-02 17:25:52
274
原创 力扣刷题TOP101:10.BM12 单链表的排序
这个任务是将无序单链表变成有序表。推荐使用归并算法。可以理解为汉武帝的推恩令政策(分治思想)。将大块封地分成小块封地(分割链表),对小封地进行整顿,确保符合中央标准(分到最小),将整治好的封地“统一”到中央管理中(合并链表)。
2024-12-02 00:00:01
414
原创 力扣刷题TOP101:9.BM11 链表相加(二)
这个任务是相加两个链表的数值。就像手算加法过程一样。两个链表表示两个整数,每个节点代表一位数字。从右到左开始相加(两个链表反转),遇10进1,最后得到两数之和(结果链表再反转)。
2024-12-01 20:50:33
864
原创 力扣刷题TOP101:8.BM10 两个链表的第一个公共结点
这个任务是找到两个链表的第一个公共结点。可以看作两个心机boy偷偷补课翻车事件。平时嘴上说自己在家玩游戏,实际上背地里都偷偷上各种补习班。小明有一套补习pHead1,小红有一套补习pHead2。他们不仅上完自己的课,还要偷偷上对方的,要卷死对方,但是他们忽略了一点,如果有共同的补习班会再某时候碰上,就要翻车社死了。
2024-11-30 23:34:53
954
原创 力扣刷题TOP101:7.BM8 链表中倒数最后k个结点
这个任务是找到链表中倒数最后k个结点。可以看作这是一场真心话大冒险。游戏主持人会随机抽一个数字 k,然后找出从最后数起的第 k个玩家。 这个玩家和他之后的所有人都要说出一个令人惊讶的秘密,接受惩罚!由于人数太多,一个个数太慢,于是主持人召唤了两个助手:“胖胖(慢指针)”和“瘦瘦(快指针)”。这两人行动敏捷,专门负责快速定位玩家,确保游戏更高效。
2024-11-30 10:00:00
408
原创 力扣刷题TOP101:6.BM7 链表中环的入口结点
这个任务是找到带环链表的环入口。可以看作是上一题龟兔赛跑(Floyd 判圈算法)的延续版:乌龟愤愤不平地举报兔子跑得太快,偷偷回头朝自己炫耀得瑟,还说在环口撒了尿标记。裁判接到举报,准备调取“监控记录”,验证兔子是否偷偷回头,并定位撒标记的位置(环入口)。
2024-11-29 23:32:54
1586
原创 力扣刷题TOP101:5.BM6 判断链表中是否有环
这个任务是判断一个链表是否包含环(循环路径),避免在操作链表时出现无限循环的问题。可以简单理解为龟兔赛跑(Floyd 判圈算法),兔子快,乌龟慢,但路是圈圈(有环)兔子必定追上。路有终点(无环),兔子先到头不等乌龟了。
2024-11-29 10:00:00
439
原创 力扣刷题TOP101:4.BM5 合并k个已排序的链表
这个任务是将 k个升序链表合并成一个升序链表。假设有一个代跑腿小哥,他的任务是从多个快递点取包裹并统一派送。每个快递点的包裹已经按派送距离从近到远排好序。为了节省时间,他需要将所有包裹装上三轮车,并按派送距离从近到远重新整理好,最后根据整理好的顺序一一派送并记录派送清单。
2024-11-28 23:20:28
466
原创 力扣刷题TOP101:3.BM4 合并两个排序的链表
这个任务是将两个有序链表合并成一个有序链表。想象一下,两位顶流明星——肖战和王一博要一起录制一个超级热播综艺,双方粉丝按照对自家偶像的贡献值(从低到高)排好队,准备依次进场为自己的偶像助威。节目组有个任务:让两队粉丝合并成一个队伍,同时保持整队保持从低到高的顺序,确保整队既有序又公平!(牛逼的一般都是压轴)
2024-11-28 18:08:51
472
原创 力扣刷题TOP101:2.BM2 链表内指定区间反转
这个任务是将链表的 第 m 到第 n 个节点反转,并让其他部分保持不变。想象你有一串项链,其中有一部分珠子(从第 m 颗到第 n 颗)被串反了,想把它恢复过来。我们需要 先把这部分珠子解下来,反转顺序,再重新串回去。
2024-11-27 23:32:00
543
1
原创 力扣刷题TOP101:1.BM1 反转链表
这个任务主要是把单链表的方向完全反过来,可以想象成一辆车(prev)开到终点(cur = None),每次接上当前人(cur),并让下家(next_node)接替继续。只需要记住三步:记住下家、转身上车、继续向前。
2024-11-27 21:47:45
753
原创 7. 确保分布式系统的可靠性
传统上,分布式计算基于消息传递模型,其中数据以消息的形式从处理器传递到处理器。RPC 实际上是相同的模型(或非常接近)。DSM 是分布式系统的所有节点(处理器)共享的虚拟地址空间。程序访问 DSM 中的数据的方式与访问传统计算机虚拟内存中的数据的方式非常相似。在具有 DSM 的系统上,数据在不同计算机的本地存储器之间移动的方式与它们在一台计算机的 RAM 和外部存储器之间移动的方式相同。6.1 DSM的优势在消息传递模型中,程序员通过显式的消息发送和接收操作提供对共享数据的访问。在这种情况下,需
2022-05-01 19:23:31
1163
原创 6.分布式共享内存(DSM - Distributed Shared Memory)
传统上,分布式计算基于消息传递模型,其中数据以消息的形式从处理器传递到处理器。RPC 实际上是相同的模型(或非常接近)。DSM 是分布式系统的所有节点(处理器)共享的虚拟地址空间。程序访问 DSM 中的数据的方式与访问传统计算机虚拟内存中的数据的方式非常相似。在具有 DSM 的系统上,数据在不同计算机的本地存储器之间移动的方式与它们在一台计算机的 RAM 和外部存储器之间移动的方式相同。6.1 DSM的优势在消息传递模型中,程序员通过显式的消息发送和接收操作提供对共享数据的访问。在这种情况下,需
2022-05-01 19:05:19
4984
原创 5.分布式文件系统
两个主要目标。网络透明。最重要的目标是提供对分布在计算机网络上的文件的相同访问,这些文件在集中式计算机上的分时系统中提供。高可用性。另一个重要目标是高可用性。系统错误或复制和维护操作不应导致文件不可用。文件服务和文件服务器的概念。文件服务是文件系统向其客户端提供的服务,即文件系统接口。文件服务器是实现文件服务的进程。用户不需要知道有多少文件服务器以及它们的位置。由于文件服务器通常是一个普通的用户进程,因此系统上可能有不同的文件服务器提供不同的服务(例如,UNIX 文件服务和 M.
2022-04-29 00:48:57
741
原创 3.分布式系统中的通信
分布式系统中的所有计算机都通过通信网络相互连接。通信网络分为大规模(Wide Area Networks,WANs)和本地(Local Area Networks,LANs)。大型广域网网络由连接在线路之间的通信计算机组成,它们是通信线路(电话无线电线路、卫星信道、光纤)并提供消息传输。当下一条消息从一台计算机传输到中间缓冲时,通常使用存储转发技术。分组交换或线路交换。在两个设备之间的整个通信会话期间,交换线路(电话交谈)需要冗余线路。数据包交换基于在源点将消息拆分为多个部分(数据包),将数据包.
2022-04-29 00:40:19
2270
原创 2.多处理器计算机的操作系统
操作系统组织:主从(主从,将一个处理器专用于操作系统简化了它,但是这个处理器在工作量和可靠性方面成为瓶颈); 对称(最有效和最复杂)。2.1 进程和线程进程是程序的执行。进程的组成部分是正在运行的程序、它的数据、它的资源(例如内存)和执行状态。传统上,进程有自己的地址空间,其状态由以下信息表征:页表(或段); 文件描述符; 投入产出订单; 寄存器; 等等大量此类信息使得创建流程和切换流程变得昂贵。即使在单处理器计算机(物理进程或其建模,结合交换和计数)上也需要轻量级进程、线程.
2022-04-28 00:26:02
1163
原创 1. 并行与分布式系统简介
1.1 共享内存多处理器系统(multiprocessors)的优点表现 可靠性多处理器的缺点软件(应用程序、语言、操作系统)比单处理器计算机更复杂 增长时受限(物理尺寸 - 接近内存,64 个处理器 - 达到的最大值)。1.2 分布式系统的优势分布式系统——一组独立的计算机,由单台计算机呈现给用户。示例:工作站网络(选择用于执行程序的处理器、单个文件系统)、机器人工厂(机器人连接到不同的计算机,但充当单台计算机的外部设备、具有多个分支机构的银行、机票预订系统。为什么要创建分
2022-04-28 00:14:11
2991
原创 4. 分布式系统中的同步
分布式算法的基本属性一般来说,去中心化的算法具有以下特性。相关信息分布在多台计算机上。流程只根据当地信息做出决定。不应该有一个关键点,其失败会导致算法的崩溃。没有共同的时钟或其他准确的全球时间来源。 前三点都指出,在一个地方收集所有的决策信息是不允许的。 在没有集中化的情况下确保同步,需要采取不同于传统操作系统的方法。 最后一点也非常重要--在分布式系统中,要及时达成协议一点也不容易。...
2022-04-23 18:23:54
2051
原创 VS2019+MPI环境配置
1.下载 Download Microsoft MPI v10.0 from Official Microsoft Download Center2. 打开VS2019创建新项目右键项目属性,添加包含目录和库目录添加依赖msmpi.libmsmpifec.lib注意:win32对应的是x86,要对应完事~...
2022-03-27 19:34:35
711
原创 分布式系统介绍
主题介绍分布式系统--在这种系统中,一组独立的计算机在其用户看来是一个单一的统一系统。 分布式计算机系统是一组网络连接的独立计算机,它作为一个单一的计算机呈现给用户。 分布式软件系统是一组通过消息交换方式进行互动的组件。 分布式系统的主要任务是促进用户对远程资源的访问,并确保其共同使用。 本文讨论了如何组织进程的交互以及它们对RAM和文件系统的访问。 描述了分布式系统可靠运行的原则。...
2022-03-15 16:18:09
3715
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人