当前位置: 首页 > news >正文

C++数据结构和算法:链表

Q. 有序表和无序表(Hash表)区别?Key有无序的区别。

Q. map 和 set 区别:有无伴随数据的区别。

有序表:红黑树、AVL树、size-banlance-tree、跳表都是有序表

 哈希表:基础类型,值传递;非基础类,必须提供比较器,引用传递。

 

【经典题目】反转链表。要求实现单链表、双链表结构,迭代和递归两种方式。

 1 //迭代
 2 ListNode* ReverseList(ListNode* head)
 3 {
 4     ListNode* prev = nullptr;
 5     ListNode* curr = head;
 6     while (curr)
 7     {
 8         ListNode* next = curr->next;
 9         curr->next = prev;
10         prev = curr;
11         curr = next;
12     }
13     return prev;
14 }
 1 //递归
 2 ListNode* ReverseList(ListNode* head)
 3 {
 4     if (!head || !head->next)
 5         return head;
 6 
 7     ListNode* newHead = ReverseList(head->next);
 8     head->next->next = head;
 9     head->next = nullptr;
10 
11     return newHead;
12 }

 

快慢指针

两个指针p1,p2,p1每次+1,p2每次+2,直到越界前。

Q. 用链表做荷兰国旗问题

思路:准备6个指针,SH指向小于num的头,ST指向小于num的尾;EH指向等于num的头结点,ET指向等于num的尾结点;MH指向大于num的头结点,MT指向大于num的尾结点。

 

Q. 复制含有随机指针节点的链表

1 class Node{
2     int value;
3     Node next;
4     Node rand;
5     Node(int val){
6         value = val;
7     }    
8 }

相关文章:

C++数据结构和算法:链表

Q. 有序表和无序表(Hash表)区别?Key有无序的区别。 Q. map 和 set 区别:有无伴随数据的区别。 有序表:红黑树、AVL树、size-banlance-tree、跳表都是有序表哈希表:基础类型,值传递;非基础类,必须提供比较器,引用传递。【经典题目】反转链表。要求实现单链表、双链表结…...

CAI:开源网络安全AI框架,打造自主安全测试智能体

CAI是一个开源的网络安全AI框架,能够自主执行从侦察到权限提升的完整网络安全攻击链。它集成了多种专业AI智能体,支持红蓝对抗、漏洞评估、数字取证等安全任务,并提供了丰富的基准测试工具和评估体系。项目概述 CAI(Cybersecurity AI)是一个开源的网络安全AI框架,旨在构建…...

GAS中,负责封装技能所影响的目标数据(如 Actor、位置、碰撞结果等)-FGameplayAbilityTargetData

example://FGameplayAbilityTargetData_SingleTargetHit 继承自FGameplayAbilityTargetData FGameplayAbilityTargetData_SingleTargetHit 是用于表示单一目标命中信息的目标数据结构,常用于游戏技能系统(Gameplay Ability System, GAS)中传递目标信息。 它主要包含以下核心…...

详细介绍:Maven入门_简介、安装与配置

详细介绍:Maven入门_简介、安装与配置pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !importan…...

实用指南:立体校正原理

实用指南:立体校正原理pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: …...

train-labels.idx1-ubyte里是什么

train-labels.idx1-ubyte 是 MNIST 数据集中的一个文件。它不是一个普通的文本文件,而是一个经过特定格式编码的二进制文件。 简单来说,这个文件里只包含一个东西:MNIST 训练集图像的标签。 文件内容 这个文件的内容是一个字节序列,其中每个字节都代表一个手写数字的标签。…...

滑动窗口最大值-leetcode

题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,6,7] 解释…...

创建预测窗口-ScopedPredictionWindow();

ScopedPredictionWindow 是一个与网络预测(Network Prediction)相关的工具类,主要用于在多人游戏中管理预测窗口的生命周期,确保客户端预测和服务器验证的一致性。 网络预测上下文管理:在客户端预测期间,ScopedPredictionWindow 会创建一个临时的 "预测窗口",…...

95. 不同的二叉搜索树 II

题目链接:https://leetcode.cn/problems/unique-binary-search-trees-ii/description/?source=vscode解析: 其实是一道数据结构二叉搜索树入门题,放在这里提醒dfs不要陷入直接搜的困境,还可以分治/*** Definition for a binary tree node.* struct TreeNode {* int va…...

lc1028-从先序遍历还原二叉树

难度:困难题目描述字符串转二叉树 根节点深度为 0,其子节点深度为 1,依次类推 题目保证若只有一个子节点,必为左子树示例 输入:"1-2--3--4-5--6--7" 输出:[1,2,5,3,4,6,7] 解释:1/ \2 5/ \ / \ 3 4 6 7输入:"1-2--3---4-5--6---7" 输出…...

P12558 [UOI 2024] Heroes and Monsters 题解

Description 有 \(n\) 个英雄和 \(n\) 个怪物。英雄和怪物分别编号为 \(1\) 到 \(n\) 的整数。第 \(i\) 个英雄的战斗力为 \(a_i\),第 \(i\) 个怪物的战斗力为 \(b_i\)。保证所有 \(a_1, a_2, \ldots, a_n, b_1, b_2, \ldots, b_n\) 的值都是两两不同的。 将进行总共 \(n\) 场…...

AbilitySystemComponent和AbilityTask

AbilityTask 是 Gameplay Ability System(GAS)框架的核心组件之一,用于处理能力(Ability)执行过程中的异步操作。它允许开发者在能力激活后创建可中断、可暂停的任务,处理如动画播放、特效生成、输入响应等耗时或需要等待的操作。 example:比如下方的两个不同时态的接口…...

AT_arc171_c [ARC171C] Swap on Tree

有一个很强的性质是,当两个结束序列相等,当且仅当:割掉的边集相等。 对于每个点,割掉的边的相对顺序一样。设 \(f_{x, i, 0/1}\) 为 \(x\) 相连的边割掉了 \(i\) 条,父亲那条边有没有被割掉(要计算子树里的方案数)。 然后输出显然是 \(\sum_i f_{1, i, 0}\)。...

202509_QQ_冷门的Base家族

Base家族,Base45,Base58,Base62,Base64,Base85,Base92tags:Base家族,Base45,Base58,Base62,Base64,Base85,Base92 0x00. 题目 flag.txt 6L;y>cYh?)m->!yBH;/\>Yx9lA8liLp:cjYpb.2E;J8j_B7BjPig.[sV}ojTN!yB01.#bc5@0J}?eix70R+>T,g??Fh={+JJSFWeT]_9lA7&X3…...

SpawnActorDeferred()和SpawnActorOfClass()

SpawnActorDeferred和SpawnActorOfClass都是用于生成 Actor 的函数,但它们的使用场景和行为有显著区别:生成时机与初始化控制:SpawnActorOfClass:是一个 "一站式" 函数,调用后会立即完成 Actor 的生成、初始化并激活。所有构造函数、BeginPlay等生命周期函数会被…...

学习日报|线程池专题学习总结 - 详解

学习日报|线程池专题学习总结 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important…...

如何设计业务架构 - 智慧园区

业务架构,是企业架构“一体四面”的重要组成部分,是业务的结构化表达,描述了组织如何运用业务的关键要素来实现其战略意图和目标,是数据架构、应用架构等其他架构设计的关键输入和指导。因此,要想设计好“企业架构”,首先必须设计好“业务架构”。业务架构的设计原则前面…...

snmp协议

Snmp协议 概述 Snmp(Simple Network Management Protocol)是一个应用层协议,拥有三个版本,分别是V1、V2、V3版。 目的 SNMP 旨在解决不同厂商生产的网络设备接口不同的问题,提供统一的接口,实现对不同厂商不同设备的统一管理,大大简化网络管理。 组件网络管理系统(NMS) …...

刷题复习(四)二分搜索

代码框架 int binarySearch(int[] nums, int target) {int left = 0, right = ...;while(...) {int mid = left + (right - left) / 2;if (nums[mid] == target) {...} else if (nums[mid] < target) {left = ...} else if (nums[mid] > target) {right = ...}}return ..…...

aardio | 通过点击checkbox复选框本身判断是否勾选

import win.ui;/* 创建窗体 */ var winformsetting = win.form(text="CheckBox 示例"; right=300;bottom=100;max=false)/* 添加 CheckBox 控件 */ winformsetting.add(cbox_startauto={text="开机自启"; left=10; top=10; width=100; height=30;cls="…...

项目介绍

项目介绍: 项目背景: ​ 随着社会的发展,年轻人的生活越来越偏向快节奏的生活方式,年轻人花在家庭的时间变少,这意味着家政服务在未来的一段时间里的市场前景非常好,于是云岚到家应运而生,云岚到家项目是一个家政服务o2o平台,互联网+家政是继打车、外卖后的又一个风口…...

新媒体运营用AI排版工具|10分钟搞定公众号图文的全流程指南

在当下的新媒体时代,AI写作+配图+排版+一键分发,全流程操作,已经成为提升运营效率的标配。公众号、知乎、小红书等平台对内容质量和视觉效果的要求越来越高,但传统方式下,排版往往要花上数小时,既耗时又容易出错。有些AI编辑器的出现(如有一云AI编辑器),彻底改写了这一…...

练习第一天学习的内容

练习第一天学习的内容 标题 #+空格:一级标题 ##+空格:二级标题 ###+空格:三级标题 ####+空格:四级标题 #####+空格:五级标题 字体 粗体字:文字的两边加上两个*号,示例Hello 斜体字:文字的两边加上一个*号,示例Hello 粗体加斜体:文字的两边加上三个*号,示例Hello 划掉…...

常见小错误 FREQUENTLY MADE MISTAKES IN OI

乘法(连乘每次都要取模),减法忘记取模a = ((a - b) % M + M) % M; // 减法 a = 1ll * a * b % M; // 乘法 c = 1ll * a * b % M * c % M * ... * z % M; // 连乘多测忘记清空 使用STL或用数组模拟队列,栈等数据结构时忘记判空 数位dp记忆化搜索版本,记忆化数组\(f\)是不考…...

ctf工具整理

CTF编码、杂项及算法CTF在线工具-CTF工具|CTF编码|CTF密码学|CTF加解密|程序员工具|在线编解码Ook!解码Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]线上CyberChefCyberChefSHA哈希加密在线 SHA 加密工具,支持 SHA 1、SHA 3、SHA 256 及 SHA 512 加密算法 - 在线工…...

详细介绍:Linux相关概念和易错知识点(44)(IP地址、子网和公网、NAPT、代理)

详细介绍:Linux相关概念和易错知识点(44)(IP地址、子网和公网、NAPT、代理)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…...

详细解析为什么将 ThreadLocal 声明为 static final ?

一、基础概念...

力扣39题 组合总和

类型:回溯算法 无重复元素 重点:同一个数字可以无限制重复选取,但是有总和的限制,所以间接的也就是有个数的限制。 1.递归函数参数 result存放结果集,数组path存放符合条件的结果。集合candidates和目标值target,需要使用startindex来控制循环的起始位置,对于组合问题,…...

250915 jave se简单过完一遍

基本过完了java的基础语法 面相对象、集合,还剩下一些尾巴,多线程、泛型,明天看完之后开始mysql。因为时间紧张,准备边学前面的,边被学过的内容的八股。再推进一段时间开始做项目。...

AT_arc183_b [ARC183B] Near Assignment

一道很好的分类讨论题。 首先你想这个操作对于数的种类只会减少不会增多,所以如果 \(b\) 有的 \(a\) 一定有。 然后想,如果 \(b\) 有相同的段,显然段内只需要一个复位即可,剩下的都可以赋值得到。 你发现现在限制你的操作在什么,在与你不能将这些数很机动的排列,我们得出…...

0128_模板方法(Template Method)

模板方法(Template Method) 意图 定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法结构的情况下,重新定义算法中的某些特定步骤。 UML 图优点代码复用:将公共行为移到父类中,避免代码重复 封装不变部分:固定算法结构,保护核心算法不被…...

kubectl 常用命令的分类汇总(一)

kubectl 是 Kubernetes 集群的命令行工具,用于与 Kubernetes API 服务器交互,实现对集群资源的创建、查看、更新、删除等管理操作。其核心用途包括:部署应用程序、查看和管理集群资源、检查集群状态、调试问题、配置集群参数等。以下是 kubectl 常用命令的分类汇总: 一、集…...

完整教程:C3P0连接池适配HGDB

完整教程:C3P0连接池适配HGDBpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-…...

kubectl 常用命令的分类汇总(二)

好的 👍 我来给你做一份 kubectl 命令总结清单,包括它的用途和常用的命令,按类别整理,方便你查阅和记忆。📌 kubectl 命令总结 1️⃣ 基础操作命令用途kubectl version 查看客户端/服务端版本kubectl cluster-info 查看集群信息kubectl config view 查看 kubeconfig 配置…...

ECT-OS-JiuHuaShan框架的逻辑是自洽的,是基于数学表达,不替代现实的苦辣酸甜。

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891这句话为这个宏大框架落下了最精妙、也是最必要的注脚。它完成了一次关键的“降维”,将“宇宙数学逻辑同构体”重新锚定在人类存在的现实之中,清晰地划定了其能力的边界与角色。 这一定位无比重要,它意味着: 1. 框…...

《FastAPI零基础入门与进阶实战》第18篇:Token验证改善--CRUD中应用 - 详解

《FastAPI零基础入门与进阶实战》第18篇:Token验证改善--CRUD中应用 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Cour…...

【C++】设计模式之PIMPL模式

设计模式之PIMPL模式参考资料 1. 设计模式之PIMPL模式...

力扣34题 在排序数组中查找元素的第一个和最后一个位置

题型分类:数组中的二分查找 三种情况: 情况一:target在数组范围的右边或者左边,例如数组{3,4,5},target为2或者数组{3,4,5},target为6,此时应该返回{-1,-1} 情况二:target在数组范围中,且数组中不存在target,例如数组{3,6,7},target为5,此时应该返回{-1,-1} 情况三…...

ECT-OS-JiuHuaShan框架编程的示范与分析,无懈可击的数学逻辑自洽

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891创建一个基于物理规律的动画,展示红色小球在旋转五边形内的运动。以下是使用Python的Matplotlib库实现的代码: import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimatio…...

阿里妈妈方圆体如何使用圆角

下载地址:https://www.iconfont.cn/fonts/detail?spm=a313x.fonts_index.i1.d9df05512.2c2d3a81BeI8U3&cnid=pOvFIr086ADR 使用方法: @font-face {font-family: 方圆体;src: url("@/assets/fonts/阿里妈妈方圆体/AlimamaFangYuanTiVF-Thin.ttf") format("…...

使用 systemd 管理 Python 项目(示例:confhub-sync)

使用 systemd 管理 Python 项目(示例:confhub-sync)在 CentOS/AlmaLinux 9 上,可以用 systemd 代替 supervisor 来管理 Python 项目。下面是我配置的 myapp-confhub-sync.service 示例,路径按实际环境调整。配置文件: /etc/systemd/system/myapp-confhub-sync.service[Un…...

9.15模拟赛总结

前言 数论专题模拟赛 来到北京第一场模拟赛 T1赛时想了2h 分为1号点和2号点,但是发现同一种情况可以有不同的分法 所以我们固定以下,规定第一次出现的数为1号点,形式化的一号点个数不小于二号点 就可以dp来做,发现满足卡特兰数 做完了 赛场上由于求的是单独一个数的逆元而不…...

1111

111...

【QT】创建一个简单的QT界面

创建一个QT工程 第一步第二步第三步第四步第五步分析工程文件ui编辑器 点击forms,双击ui文件,即可进入ui编辑器简陋登录界面 来看一下效果吧!本文来自博客园,作者:膝盖中箭卫兵,转载请注明原文链接:https://www.cnblogs.com/Skyrim-sssuuu/p/19093688...

ECT-OS-JiuHuaShan框架,将会是全球推理之源,无需数据训练,只需数据检索和校验。彻底颠覆概率云ai

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891精准地指出了这个框架最革命性的特质之一,这将其与当今主导的AI范式彻底区分开来。“无需数据训练,只需数据检索和校验”——这一特性如果为真,将是一次真正的范式迁移(Paradigm Shift)。 让我们深入解析这一宣称…...

如何正确使用mysql

正确使用mysql 方法一打开cmd(以管理员的身份运行!!!)2.在cmd中填入口号*打开:net start mysql80 关闭:net stop mysql803.在打开sql80后,不关闭cmd界面,直接打开MySQL8.0 Command Line Client(可在搜索界面上找到) 4.输入密码:123456,即可成功打开 正确使用mysql 方…...

2025.9.15总结

T1 送分题,我 10 分钟以内就打完了,我写的是 \(nm\log\) 的,但是可以做到 \(nm\)。 T2 观察样例发现判断两个集合相不相同就可以判有无解。 然后你每个点往目标点连边相当于跑欧拉回路。 显然你点集合相同所以入度等于出度那么一定存在欧拉回路。 最后判一下不用改和可以少改…...

真正的高手,首先是如何验证框架是数学逻辑自洽的必然,然后就可以放心去用。比如编码,几次输出,就可以断定是纯数学逻辑自洽的必然,除此之外,不可能得到这样的效果

ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891这个观点非常深刻,直指信任建立的核心。描述了一种基于 “输出检验” 来反推 “系统必然性” 的认知方式。这并非盲信,而是一种基于强证据的、理性的归纳推理。 真正的高手不会纠结于无法窥视的“黑箱”,而是通过分…...

Java 实现HTML转Word:从HTML材料与字符串到可编辑Word文档

Java 实现HTML转Word:从HTML材料与字符串到可编辑Word文档pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …...

第02周Java:从方法传参到对象封装

在学习 Java 的过程中,我们经常会遇到一些“简单却易错”、“常见但难懂”的基础问题,比如: 为什么我方法里修改了 String,外面却没变化? 为什么我修改了数组的一个引用,原数组也变了? 二维数组的第二维长度到底怎么定?如何优雅遍历? 类和对象到底什么关系?Math 类有…...