Day109 | 148.排序链表 | 归并排序
Day109 | 灵神 | 148.排序链表 | 归并排序148. 排序链表 - 力扣(LeetCode) 以下是灵神的题解,笔者认为这题只要可以看懂就好了 两种方法:分治和迭代 前置题目 876. 链表的中间结点 21. 合并两个有序链表 方法一:归并排序(分治) 找到链表的中间结点 head2 的前一个节点,并断开 head2 与其前一个节点的连接。这样我们就把原链表均分成了两段更短的链表 分治,递归调用 sortList,分别排序 head(只有前一半)和 head2。 排序后,我们得到了两个有序链表,那么合并两个有序链表,得到排序后的链表,返回链表头节点。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849class Solution { // 876. 链表的中间结点(快慢指针) ListNode* middleNode(ListNode* head) { ListNode* pre =...
Day108 | 灵神 | 合并两个有序链表
Day108 | 灵神 | 合并两个有序链表21. 合并两个有序链表 - 力扣(LeetCode) 思路: 这是道easy题,直接写就行 说一下递归的写法 递归函数的含义是合并两个有序链表,返回值是合并后的链表的头结点 递归边界:如果其中一个链表为空,直接返回另一个链表作为合并后的结果 本层逻辑:谁小就把谁接到当前结点的后面,然后返回当前结点作为合并后的结果 完整代码: 1234567891011121314151617181920212223class Solution {public: ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { ListNode *t=new ListNode; ListNode *res=t; while(list1&&list2) { if(list1->val<list2->val) { ...
26考研 | 计算机网络 | 对计网考研中的信道、传输时延、传播时延的理解
对计网考研中的信道、传输时延、传播时延的理解在学习数据链路层流量控制和可靠传输那一节的三个协议的最大信道利用率时产生的疑惑 情景: 假如A主机和B主机通过集线器连接,A和集线器是光纤连接,B和集线器也是光纤连接,A给B发送帧 问题: 那么信道指的是什么?发送信道指的是什么?包含A到B之间的光纤吗?还是A把数据推到光纤上所经过的地方才是信道,光纤并不算在内?所以才说算信道利用率的时候,只算传输时延而不看传播时延? 那A的数据在光纤中传播时,算不算信道的空闲时间呢? 一、信道的定义与范围1.信道(Channel)的物理本质信道是数据传输的物理或逻辑路径。在本场景中,信道包含A到集线器的光纤链路、集线器内部背板总线以及集线器到B的光纤链路。 光纤作为传输介质是信道的重要组成部分(,而集线器内部采用总线结构实现逻辑上的共享连接 由于集线器工作在物理层,所有端口共享同一冲突域和广播域,因此 整个集线器连接的线路构成一个共享信道 2.发送信道(Transmission...
Day107 | 147.对链表进行插入排序 | 简单选择、冒泡、直接插入
Day107 | 147.对链表进行插入排序 | 简单选择、冒泡、直接插入147. 对链表进行插入排序 -...
26考研 | 王道 | 计算机网络 | 第二章 物理层
26考研 | 王道 | 第二章...
26考研 | 王道 | 计算机网络 | 第三章 数据链路层
26考研 | 王道 | 第三章 数据链路层数据链路层所处的地位 数据链路层 使用 物理层 提供的“比特传输”服务 数据链路层 为 网络层 提供服务,将网络层的 IP数据报(分组)封装成帧,传输给下一个相邻结点 物理链路:传输介质(0层)+ 物理层(1层)实现了相邻结点之间的“物理链路” 逻辑链路:数据链路层需要基于“物理链路”,实现相邻结点之间逻辑上无差错的“数据链路(逻辑链路)” 1.数据链路层的功能 流量控制实际上是控制发送方的数据流量,让发送方发的慢一点 为了避免传输过程中的帧丢失,数据链路层采用的方法是计时器超时重发 为终端节点隐蔽物理传输的细节的是物理层而不是数据链路层的事情 数据链路层也会控制对物理传输介质的访问 2.封装成帧(组帧) 1.概念定义:封装成帧是指在一段数据的前后分别添加首部和尾部来构成帧,帧是数据链路层的数据传送单元。 帧长 = 数据长度 + 首部长度 + 尾部长度...
Day106 | 灵神 | 二叉树 二叉树中的最长交错路径
Day106 | 灵神 | 二叉树 二叉树中的最长交错路径1372.二叉树中的最长交错路径1372. 二叉树中的最长交错路径 - 力扣(LeetCode) 笔者题解思路: 这道题挺难想的,笔者第一次写,没写出来,原因是情况少了,只考虑可以往左的时候往左和可以往右走的时候往右,少了不可以往左的时候往左和不可以往右的时候往右走 所以就是分四种情况,同时我们使用一个bool值flag记录上一次我们是从左边来的还是从右边来的,同时使用len记录路径长度,dfs含义就是深度搜索,但是要在搜索过程中记录最大值 规定flag为0,表示可以往左走,不可以往右走,表示我们上次走的右子树到达了本节点 flag为1,表示可以往右走,不可以往左走,表示我们上次走的左子树到达了本节点 1void dfs(TreeNode *t,bool flag,int...
26考研 | 王道 | 计算机网络 | 第一章 计算机网络的体系结构
26考研 | 王道 | 第一章 计算机网络的体系结构1.1 计算机网络概述1.计算机网络的概念 **计算机网络(Computer networking)**是一个将众多分散的、自治的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 自治的:如果一台设备坏掉,不会影响另外一台设备的运行。 通信设备:家用路由器、5G基站。 线路:WiFi——无线线路;网线——有线线路。 软件:百度网盘——资源共享;微信——信息传递。 计算机网络、互连网、互联网的区别 计算机网络(简称 网络):由若干结点(node)和连接这些结点的链路(link)组成。 两个或者两个以上的计算机相互连接起来就是互连网。把全球的计算机都连接起来组成的更大的互连网就是互联网 结点可以是计算机、集线器、交换机、路由器等; ...
刷题总结 | C++中对map的value进行排序的方法总结
C++中对map的value进行排序的方法总结在C++中,std::map默认基于键(Key)排序,若需按值(Value)排序,需借助间接方法。 一、Vector转换法(最通用)原理:将map的键值对拷贝到vector中,利用std::sort结合Lambda表达式按值排序。步骤: 将map转为vector<pair<Key, Value>> 使用自定义比较器对vector排序 遍历排序后的vector获取结果 代码示例: 123456789101112std::map<std::string, int> myMap = {{"apple", 5}, {"banana", 3}};std::vector<std::pair<std::string, int>> vec(myMap.begin(), myMap.end());// 按值降序排序std::sort(vec.begin(), vec.end(),...
Day105 | 灵神 | 二叉树 出现次数最多的子树元素和
Day105 | 灵神 | 二叉树 出现次数最多的子树元素和1026.节点与其祖先之间的最大差值1026. 节点与其祖先之间的最大差值 -...