- 2024-08-10Javascript常见算法(二)
合并K个排序链表详解 在JavaScript中合并K个已排序的链表是一个常见的算法问题,它可以通过多种方法解决,包括使用优先队列(通常通过最小堆实现)或直接两两合并。这里,我将详细解释这两种方法,并给出示例代码。方法一:使用优先队列(最小堆)这种方法的核心思想是利用一个最小堆来持续
- 2024-08-090211-使用 dummy 发送数据
环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/linux目标前面使用了pnet自己模拟的一个数据链路层的发送和接收过程。现在使用linux的dummy来模拟数据的发送和接收。新建网络接
- 2024-08-090212-使用 dummy 收发数据
环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/linux目标前面使用了pnet发送了一个数据包,这里发送一个数据包,然后接收并显示出来。接收数据usepnet_datalink::{linux,Channel};f
- 2024-08-03leetcode 021:删除链表的倒数第 N 个结点
LCR021.删除链表的倒数第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]structListNode*removeNthF
- 2024-07-30代码随想录二刷(链表章节)
代码随想录二刷(链表章节)链表就是通过指针串联在一起的线性结构,每个节点都是由一个数据域和指针域(存放下一个节点的指针)。双链表就是每个节点中既有指向前一个节点的,也有指向后一个节点的。循环链表就是把头和尾连起来。性能分析如下:下面来看下链表的具体题目:Leetcod
- 2024-07-26删除链表倒数第N个节点(19)
双指针法双指针法主要是最开始有两个指针fast,slow都指向链表的虚拟头节点dummy,然后快指针先移动,这里需要先向后移动n+1位(因为你最终是要找到目标节点的前一个节点),然后slow和fast节点就开始同时移动,直至fast指向链表的最后一个节点的下一个指向null,此时slow节点就指向了链表目
- 2024-07-240207-pnet 模拟链路层数据
环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy目标使用pnet_datalink包中的dummy模拟数据链路层的数据交换。Cargo.toml[package]edition="2021"name="network"versi
- 2024-07-240208-模拟发送链路层数据
环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy目标使用pnet_datalink包中的dummy模拟数据链路层发送一个数据包。网络接口letinterface=dummy::dummy_interface(44);创
- 2024-07-240210-模拟发送构建的数据
环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy目标使用pnet_datalink包中的dummy模拟数据链路层发送数据包。网络接口letinterface=dummy::dummy_interface(44);创建通
- 2024-07-240209-模拟发送多个数据包
环境Time2022-11-20WSL-Ubuntu22.04Rust1.65.0pnet0.31.0前言说明参考:https://docs.rs/pnet_datalink/0.31.0/pnet_datalink/dummy目标使用pnet_datalink包中的dummy模拟数据链路层发送多个数据包。网络接口letinterface=dummy::dummy_interface(44);创
- 2024-06-30leetCode.92. 反转链表 II
leetCode.92.反转链表II题目思路代码/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nullptr){}*ListNod
- 2024-05-29leetCode.82. 删除排序链表中的重复元素 II
leetCode.82.删除排序链表中的重复元素II题目思路:代码classSolution{public:ListNode*deleteDuplicates(ListNode*head){autodummy=newListNode(-1);dummy->next=head;autop=dummy;while(p->next){
- 2024-04-05C++链表小册子
目录1.简记2.多说两句3.算法题1.简记对于C++链表类的创建,有以下简记:堆分配,new作为右值。返回指针。对象生命周期手动管理,需要显式删除(delete)ListNodedummy(0);栈分配,返回ListNode。仅在作用域内生效(和常见的初始化int一样)。要得到ListNode指针需要&取地址2.多说两句
- 2024-03-12第四节:链表相关(删除倒数第N节点、相邻位置交换)
一.删除倒数第N个节点一.题目描述 给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。 示例: leetcode地址:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/ 难度:【中等】二.思路分析 (经典的链
- 2024-03-03147. 对链表进行插入排序(中)
目录题目题解优化题目给定单个链表的头head,使用插入排序对链表进行排序,并返回排序后链表的头。插入排序算法的步骤:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在
- 2024-03-02LRU cache
https://leetcode.cn/problems/lru-cache/设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构配图全部来自于lc的题解我门来看下图所示的数据结构每个key对应着一个节点,每个节点存有key,value,prev,next。我们现在将该图稍微改动一下,添加一个将表头和表尾去掉,换
- 2024-02-27【力扣】分隔链表
题目描述思路先想到的一个方法是快慢指针扫描小于x的结点,然后把这些节点插入到慢指针后面去,但是写着写着好像发现这个题也可以用递归来写,后面的若干个结点的子表和整个问题的性质是一样的。普通方法的代码如下://只是大致是这样,这个代码还有一些用例跑不过classSolution{p
- 2024-01-2782. 删除排序链表中的重复元素 II(中)
目录题目题解:双指针题目给定一个已排序的链表的头head,删除原始链表中所有重复数字的节点,只留下不同的数字。返回已排序的链表。题解:双指针题目给的头节点是第一个元素,处理起来较麻烦(需单独处理头节点);加上习惯用一个空的头节点,所以本题新建了一个虚拟头节点,以便统一
- 2023-12-31day03 代码随想录算法训练营 203. 移除链表元素
题目:203.移除链表元素我的感悟:题目里的节点是已经给好的,创建虚拟节点,是为了方便处理头节点。加油,我可以的!!!!!理解难点:节点已经给好的创建虚拟节点代码难点:p是临时变量,类似于foriinrange(10)这里的i,本身是用完就扔的。返回值为什么不能是p.next?因为p是一个指针,
- 2023-12-29python 删除链表的倒数第 N 个结点 多种解法
解法一:双指针法这种解法使用两个指针,一个快指针和一个慢指针,它们之间的距离为N。首先,让快指针先移动N步。然后,同时移动快指针和慢指针,直到快指针到达链表末尾。此时,慢指针指向的节点就是要删除的节点的前一个节点。最后,将慢指针的下一个节点指向下下个节点,完成删除操作。defre
- 2023-12-07[LeetCode Hot 100] LeetCode2. 两数相加
题目描述思路:模拟每次3个数相加:l1链表的值+l2链表的值+进位如果l1链表不为空或者l2链表不为空或者进位不为0我们就执行循环那么和存储的是t%10进位就是t/10因为题目需要创造一条链表,所以我们创建一个dummy结点的话会方便一点。方法一:/***Definitionfo
- 2023-12-05[LeetCode Hot 100] LeetCode19. 删除链表的倒数第N个结点
题目描述思路一:采用两次遍历第一遍遍历先获取链表的长度length第二次从dummy节点开始走length-n步然后将该节点指向下下个节点思路二:采用一次遍历设置虚拟节点dummyHead指向head设定双指针p和q,初始都指向虚拟节点dummyHead移动q,直到p与q之间相隔的元素个数为n(即q走
- 2023-12-05[LeetCode Hot 100] LeetCode21. 合并两个有序链表
题目描述思路:新建dummy去"穿针引线"新建一个dummy节点去"穿针引线"注意最后返回的是dummy.next方法一:/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this
- 2023-11-08如何在LaTeX中加入dummy语句
参考资料:https://blog.chapagain.com.np/latex-generate-dummy-text-lorem-ipsum-in-your-document/\documentclass{report}\usepackage{lipsum}\begin{document}\chapter{Introduction}\lipsum[2-4]\end{document}生成效果如下:lipsum后面跟的
- 2023-10-27LeetCode 2: Add Two Numbers
https://leetcode.cn/problems/add-two-numbers/description/FinallyIjoinedaforeigncompany'sChinabranchtolearnEnglishandstartanewjourney.PS:FromnowformeseemsMoreleisurely,elegant,high-tech,andalittlewise(inleadership)compa