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

LeetCode:经典题之141、142 题解及延伸

系列目录

88.合并两个有序数组
52.螺旋数组
567.字符串的排列
643.子数组最大平均数
150.逆波兰表达式
61.旋转链表
160.相交链表
83.删除排序链表中的重复元素
389.找不同
1491.去掉最低工资和最高工资后的工资平均值
896.单调序列
206.反转链表
92.反转链表II
141.环形链表
142.环型链表


目录

  • 系列目录
  • 141. 环形链表
    • 常量因子
  • 142. 环型链表II


141. 环形链表

🌟链表+哈希表+快慢指针

原题链接


C++
若未特殊标明,以下题解均写用C++

方法一 哈希表
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:bool hasCycle(ListNode *head) {// 无序集合(哈希集合) 变量类型为 ListNode*// 检查节点是否访问过unordered_set<ListNode*> seen;// head 不为空while (head) {// 这里 count的返回值只能是 0或1// 不能写成 seen.count(head) != nullif (seen.count(head) != 0)return true;// 节点不存在, 存入——seen.insert();// 避免无限循环导致超时seen.insert(head);head = head->next;        }return false;}
};

方法二 快慢指针 
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:bool hasCycle(ListNode *head) {// 如果 链表长度为0或1if (head == nullptr || head->next == nullptr)return false;ListNode* slow = head;ListNode* fast = head->next;while (slow != fast) {// 一定要先检查节点本身,避免出现 未定义行为// 链表长度为2if (fast == nullptr || fast->next == nullptr )return false;slow = slow->next;fast = fast->next->next;}return true;}
};

⚠️小细节:要先检查节点本身,再检查它的next

为什么 fast == nullptr 不能和 fast->next == nullptr 调换位置?

如果调换位置,先检查 fast->next == nullptr,当链表中只有一个节点时(即 head 是唯一节点),fast 将会是 head->next,它将是 nullptr

在这种情况下,fast->next 的检查(即 nullptr->next)将会导致一个未定义行为(通常是一个运行时错误),因为我们不能在 nullptr 上解引用

所以,首先检查 fast 是为了确保在尝试访问 fast->next 之前,fast 不是 nullptr ,从而可以避免未定义行为



方法一 时间复杂度O(N) 空间复杂度O(N) 其中N为链表节点数

在这里插入图片描述


方法二 时间复杂度O(N) 空间复杂度O(1) 其中N为链表节点数

在这里插入图片描述

“相同”时间复杂度的两种算法,为什么实际执行时间差别这么大呢?

  • 在实践中,快慢指针方法通常具有较小的常数因子,因为它只涉及指针操作和比较
  • 虽然哈希表理论上的查找、插入的时间复杂度为O(1)——准确的说应该是平均O(1)
  • 哈希表方法在插入和查找元素时可能需要进行哈希计算,这可能会引入额外的计算开销
  • 但与其他数据结构相比,哈希表还是十分高效的,不必过于纠结

这里引入常量因子的概念

参考自《算法导论》

唯一真神~

在这里插入图片描述

常量因子

又称常数因子

在C++代码中,常数因子经常以字面常量、const变量或枚举类型的形式出现

这些常数因子可能用于定义数组的大小、循环的次数、数学计算中的系数、物理模拟中的常量等

字面常量

#include <iostream>  int main() {  const int arraySize = 100; // 数组大小的常数因子  int arr[arraySize]; // 使用字面常量作为数组大小  // 使用字面常量进行数学计算  double result = 3.14159 * 2 * 5; // π乘以直径,其中3.14159是π的近似值  std::cout << "Array size: " << arraySize << std::endl;  std::cout << "Calculation result: " << result << std::endl;  return 0;  
}

const变量

#include <iostream>  int main() {  const double gravity = 9.8; // 重力加速度的常数因子  double height = 10.0; // 初始高度  double time = std::sqrt(2 * height / gravity); // 使用常数因子计算自由落体时间  std::cout << "Time to fall from " << height << " meters: " << time << " seconds" << std::endl;  return 0;  
}

枚举类型

#include <iostream>  enum class Color {  RED = 1,     // 颜色常量的一个值  GREEN = 2,  BLUE = 3  
};  int main() {  Color myColor = Color::RED; // 使用枚举常量  switch (myColor) {  case Color::RED:  std::cout << "The color is red." << std::endl;  break;  // ... 其他情况 ...  }  return 0;  
}

魔法数字(Magic Numbers)

在代码中直接使用字面常量而不是给它们命名可能会导致代码难以理解和维护
这些字面常量通常被称为“魔法数字” 为了改进代码的可读性和可维护性,最好将魔法数字替换为具有描述性名称的const变量或枚举常量

性能优化中的常数因子

在性能优化的场景中,常数因子可能会变得很重要
例如,如果一个循环体内部有一个操作非常耗时,而这个操作是固定的(即不随循环迭代而变化),那么减少这个操作的执行次数(即减少常数因子)可能会显著提高性能

// 假设有一个耗时的操作doExpensiveOperation()  
for (int i = 0; i < 1000; ++i) { // 这里的1000是一个常数因子  doExpensiveOperation(); // 假设这个操作非常耗时  
}  // 优化:如果可能的话,减少循环次数(即减少常数因子)  
const int optimizedIterations = 500; // 假设这是优化后的常数因子  
for (int i = 0; i < optimizedIterations; ++i) {  doExpensiveOperation();  
}

在上面的例子中,通过减少循环次数(即减少常数因子),我们可能能够显著提高代码的性能
但是,这种优化要在确保算法正确性和满足性能需求的前提下进行





142. 环型链表II

🌟链表+哈希表+快慢指针

原题链接


C++
若未特殊标明,以下题解均写用C++

方法一 哈希表
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *detectCycle(ListNode *head) {unordered_set<ListNode*> seen;while (head) {if (seen.count(head) != 0)// pos 不作为参数传递return head;seen.insert(head);head = head->next;}return nullptr;}
};

方法二 快慢指针

图示:

在这里插入图片描述

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *detectCycle(ListNode *head) {ListNode *slow = head, *fast = head;// 若没有环,fast 比 slow先指向空// 以此作为while 的循环条件判定while (fast) {// 如果链表长度为 1if (fast->next == nullptr)return nullptr;slow = slow->next;fast = fast->next->next;// 此时定义 *preif (fast == slow) {ListNode *pre = head;while (pre != slow) {    pre = pre->next;slow = slow->next;}return pre;}  }// 直到 fast指向空都没能满足 slow = fastreturn nullptr;}
};

相关文章:

LeetCode:经典题之141、142 题解及延伸

系列目录 88.合并两个有序数组 52.螺旋数组 567.字符串的排列 643.子数组最大平均数 150.逆波兰表达式 61.旋转链表 160.相交链表 83.删除排序链表中的重复元素 389.找不同 1491.去掉最低工资和最高工资后的工资平均值 896.单调序列 206.反转链表 92.反转链表II 141.环形链表 …...

rk3568 OpenHarmony 串口uart与电脑通讯开发案例

一、需求描述&#xff1a; rk3568开发板运行OpenHarmony4.0&#xff0c;通过开发板上的uart串口与电脑进行通讯&#xff0c;相互收发字符串。 二、案例展示 1、开发环境&#xff1a; &#xff08;1&#xff09;rk3568开发板 &#xff08;2&#xff09;系统&#xff1a;OpenHar…...

canvas画布旋转问题

先说一下为什么要旋转的目的&#xff1a;因为在画布上签名&#xff0c;在不同的设备上我需要不同方向的签名图片&#xff0c;电脑是横屏&#xff0c;手机就是竖屏&#xff0c;所以需要把手机的签名旋转270&#xff0c;因此写了这个方法。 关于画布旋转的重点就是获取到你的画布…...

vue3 【提效】自动导入框架方法 unplugin-auto-import 实用教程

是否还在为每次都需要导入框架方法而烦恼呢&#xff1f; // 每次都需手动导入框架方法 import { ref } from vuelet num ref(0)用 unplugin-auto-import 来帮你吧&#xff0c;以后只需这样写就行啦&#xff01; let num ref(0)官方示例如下图 使用流程 1. 安装 unplugin-au…...

clip系列改进Lseg、 group ViT、ViLD、Glip

Lseg 在clip后面加一个分割head&#xff0c;然后用分割数据集有监督训练。textencoder使用clip&#xff0c;frozen住。 group ViT 与Lseg不同&#xff0c;借鉴了clip做了真正的无监督学习。 具体的通过group block来做的。使用学习的N个group token&#xff08;可以理解为聚类…...

Ubuntu下TensorRT与trtexec工具的安装

新版&#xff08;这里测试的是10.1版&#xff09;的onnx转tensorrt engine工具trtexec已经集成在TensorRT中&#xff0c;不需要额外单独安装。 教程来源于此网页&#xff1a;https://medium.com/moshiur.faisal01/install-tensorrt-with-command-line-wrapper-trtexec-on-unun…...

MySQL定时任务

事件调度器操作 查看事件调度器是否开启&#xff1a;ON 表示已开启。 show variables like %event_scheduler%; ------------------------ | Variable_name | Value | ------------------------ | event_scheduler | ON | ------------------------ 开启和关闭事件调度器…...

Pandas实用Excel数据汇总

Pandas 是一个开源的 Python 库&#xff0c;由 Wes McKinney 开发&#xff0c;专门用于高效地处理和分析数据&#xff0c;无论是小规模的数据实验还是大规模的数据处理任务。它构建在 NumPy 之上&#xff0c;这意味着它利用了 NumPy 的高性能数组计算能力。Pandas 的核心数据结…...

【计算机网络】[第4章 网络层][自用]

1 概述 (1)因特网使用的TCP/IP协议体系(四层)的网际层,提供的是无连接、不可靠的数据报服务; (2)ATM、帧中继、X.25的OSI体系(七层)中的网络层,提供的是面向连接的、可靠的虚电路服务。 (3)路由选择分两种: 一种是由用户or管理员人工进行配置(只适用于规…...

Unity3D Entity_CacheService实现详解

Unity3D是一款广泛使用的游戏开发引擎&#xff0c;它提供了丰富的功能和工具来帮助开发者创建高质量的游戏和互动体验。在Unity开发过程中&#xff0c;资源管理是一个重要的环节&#xff0c;特别是当项目规模逐渐增大&#xff0c;资源数量变多时。为了优化资源的加载和管理&…...

DLMS/COSEM协议—(Green-Book)Gateway protocol

DLMS/COSEM协议 — Gateway protocol 10.10 Gateway protocol &#xff08;网关协议&#xff09;10.10.1 概述10.10.2 网关协议 &#xff08;The gateway protocol&#xff09;10.10.3 HES在WAN/NN中作为发起者&#xff08;拉取操作&#xff09;10.10.4 LAN中的终端设备作为发起…...

Android高级面试_12_项目经验梳理

Android 高级面试-1&#xff1a;Handler 相关 问题&#xff1a;Handler 实现机制&#xff08;很多细节需要关注&#xff1a;如线程如何建立和退出消息循环等等&#xff09; 问题&#xff1a;关于 Handler&#xff0c;在任何地方 new Handler 都是什么线程下? 问题&#xff1a…...

【项目实训】解决前后端跨域问题

由于前端框架使用vue&#xff0c;后端使用flask&#xff0c;因此需要解决前后端通信问题 在vue.config.js中修改 module.exports defineConfig({transpileDependencies: true,lintOnSave:false, }) // 跨域配置 module.exports {devServer: { //记住&#x…...

Java反射API详解与应用场景

一、Java反射API简介: 一、什么是反射: 反射是一种强大的工具,它允许我们在运行时检查类、方法和字段的信息,甚至允许我们动态的调用特定类的方法或改变字段的值。编程语言中的反射机制通常用于从类、对象或方法中检索元数据,或者更特别的说,从代码本身中获取信息。这就…...

【例子】webpack 开发一个可以加载 markdown 文件的加载器 loader 案例

Loader 作为 Webpack 的核心机制&#xff0c;内部的工作原理却非常简单。接下来我们一起来开发一个自己的 Loader&#xff0c;通过这个开发过程再来深入了解 Loader 的工作原理。 这里我的需求是开发一个可以加载 markdown 文件的加载器&#xff0c;以便可以在代码中直接导入 m…...

揭秘!这款电路设计工具让学校师生都爱不释手——SmartEDA的魔力何在?

随着科技的飞速发展&#xff0c;电子设计已成为学校师生们不可或缺的技能之一。而在众多的电路设计工具中&#xff0c;有一款名为SmartEDA的工具&#xff0c;凭借其强大的功能和友好的用户体验&#xff0c;迅速赢得了广大师生的青睐。今天&#xff0c;就让我们一起探索SmartEDA…...

onlyoffice实现打开文档的功能

后端代码 import api from api import middlewareasync def doc_callback(request):data await api.req.get_json(request)print("callback ", data)# status 2 文档准备好被保存# status 6 文档编辑会话关闭return api.resp.success()app api.Api(routes[api.…...

基于 SpringBoot + Vue 的图书购物商城项目

本项目是一个基于 SpringBoot 和 Vue 的图书购物商城系统。系统主要实现了用户注册、登录&#xff0c;图书浏览、查询、加购&#xff0c;购物车管理&#xff0c;订单结算&#xff0c;会员折扣&#xff0c;下单&#xff0c;个人订单管理&#xff0c;书籍及分类管理&#xff0c;用…...

如何使用kimi智能助手:您的智能生活小助手

Kimi智能助手是一款功能强大的AI工具&#xff0c;旨在帮助用户提高工作效率和生活品质。下面小编将详细介绍如何使用Kimi智能助手&#xff0c;涵盖其主要功能以及一些实用技巧。 一、Kimi智能助手的主要功能 多语言对话能力&#xff1a;Kimi擅长中文和英文的对话&#xff0c;可…...

sql操作

1. 按条件将表A的数据更新到表B中&#xff1a; update B b set b.col1 (select col1 from A a where b. id a.code), b.col2 (select col2 from A a where b. id a.code), ………… 2. 将表A的全量数据插入到表B中 insert into B (col1, col2, col3, col4,……&am…...

开关电源调试记录-基于DK112(DK1203也一样)作为开关主控芯片的开关电源

调试了一款DK112&#xff08;datasheet&#xff09;开关电源控制芯片。 1、原理图如下&#xff1a; 2、测试波形 a.输出波形&#xff0c;图中标识“5V”的位置 b.芯片VCC引脚&#xff0c;图中标识“4”的位置 c.芯片FB引脚&#xff0c;图中标识“3”的位置 对于FB引脚&…...

【自然语言处理】GPT-5技术突破预测:引领自然语言处理革新的里程碑

摘要 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;领域正迎来一场前所未有的革命。近日&#xff0c;OpenAI首席技术官米拉穆拉蒂在采访中透露&#xff0c;新一代大语言模型GPT-5将在一年半后发布&#xff0c;这一消息无疑在科技界掀起了巨大的波澜。GPT-…...

qt基本窗口类(QWidget,QDialog,QMainWindow)

1.三个基本窗口类 1.1QWidget 所有窗口的基类 可以内嵌到其他窗口的内部&#xff0c;无边框 也可以作为独立窗口显示&#xff0c;有边框 1.2QDialog 继承于QWidget 对话框窗口类 不可以内嵌到其他窗口 有模态和非模态两种显示方式 1.3QMainWind 继承于QWidget 主窗口类 不可以…...

最新收录历年地震数据,含时间、位置、类型、震级等信息

基本信息. 数据名称: 历年地震数据 数据格式: Shp 数据时间: 2023年 数据几何类型: 点 数据坐标系: WGS84坐标系 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1dzlx地震类型2zj震级3zysd震源深度&#xff08;米&#xff09;4jtwz…...

C++ 串口读写

这段代码演示了如何使用 Windows API 中的串口通信功能进行简单的数据发送和接收。它使用了串口的基本操作和设置,并通过 sendSizeCategory 函数实现了一个简单的串口通信示例,发送一个十六进制数据,并读取串口返回的数据。 _CRT_SECURE_NO_WARNINGS:这是针对使用 strcpy …...

WebRTC系列实战-自定义RTP中的extension

文章目录 1. 新增extensionsId;1.1 新增自定义extension1.2 准备添加到sdp相关操作1.3 对header长度返回的修改:2. 自定义extesion的写入及注册到extensionMap中2.1 添加到RTPheader中2.2. 大小限制2.3. 是否注册限制2.4. 自定义extension注册需要修改的位置3.接收端解析及注…...

std::function和std::bind函数

std::function和std::bind是C11引入的功能强大的库组件&#xff0c;用于处理函数对象和函数调用的高级操作。它们极大地增强了C处理回调、函数指针和函数对象的能力。 std::function std::function是一个通用的、多态的函数封装器&#xff0c;可以容纳任何可调用的目标——包…...

补码的理解,想明白了觉得还挺有趣的

原因&#xff1a; 之前会一直好奇补码为什么是这么设计的&#xff0c;刚刚发呆的时候突然就明白了。 设计目的&#xff1a; 要理解&#xff0c;补码的设计初衷是为了计算机的计算问题。计算机的加法计算是非常简单的&#xff0c;但是对于减法&#xff0c;因为要借位&#xf…...

FuTalk设计周刊-Vol.027

&#x1f525;&#x1f525;交互体验 创意运营&#x1f525;&#x1f525; 1、「AIGC实战」城市消费券项目经验 随着AI图像生成技术的高速发展&#xff0c;以Midjourney、Stable diffusion为例的AI工具引起了大家广泛的研究和应用浪潮&#xff0c;也印证了早期流传在AIGC圈的…...

抖音外卖服务商有哪些,盘点这几家正规服务商!

当前&#xff0c;抖音外卖的关注度不断上涨&#xff0c;抖音外卖服务商也逐渐成为了众多创业者心中的理想创业赛道。在此背景下&#xff0c;抖音外卖服务商的入局途径多次引发创业者热议&#xff0c;以抖音外卖服务商有哪些公司为代表的相关话题更是长期位居创业者问题榜单的前…...

sh脚本模块笔记

sh脚本模块笔记 1. 如果不存在&#xff0c;则创建指定目录2. 检测python启动指令 记录一些sh脚本中用到过的模块 1. 如果不存在&#xff0c;则创建指定目录 这个脚本首先会检查指定的目录是否存在&#xff0c;如果存在则会打印错误消息并退出&#xff0c;否则会创建该目录&am…...

关于服务器的一些知识

1. 云服务器 和 轻量应用服务器 腾讯云中的"云服务器"&#xff08;Cloud Virtual Machine, CVM&#xff09;和"轻量应用服务器"&#xff08;Lite Cloud Server&#xff09;都是提供云端计算资源的服务&#xff0c;但它们在定位、特性和使用场景上存在一些差…...

力扣-和为K的子数组

题目-和为 K 的子数组 解法1&#xff1a;两层for循环 public class T560 {public static int subarraySum(int[] nums, int k) {int res 0;for (int i 0; i < nums.length; i) {int tempSum 0;for (int j i; j < nums.length; j) {tempSum nums[j];if (tempSum k)…...

写一个坏越个人天地(五)

昨天整了半天天气api还是有点小问题。一天50次真的不够我test的。一气之下还是全删了改用高德api。把接口写在了后端&#xff0c;这样我启动界面后就可以直接通过接口在后端嘎嘎处理逻辑了。再整理返回就好了 不过高德api好像获取地址的概率好低&#xff0c;于是我还是整了个获…...

步步精科技诚邀您参加2024慕尼黑上海电子展

尊敬的客户&#xff1a; 我们诚挚地邀请您参加即将于2024年7月8日至7月10日在上海新国际博览中心举办的2024慕尼黑上海电子展&#xff08;electronica China&#xff09;。此次展会汇聚了国内外优秀企业&#xff0c;展示从元器件到系统集成方案的完整产品链&#xff0c;为各行…...

Spring Boot中如何配置和使用多数据源

Spring Boot中如何配置和使用多数据源 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将深入探讨如何在Spring Boot应用中配置和使用多数据…...

vue3 【提效】全局布局 vite-plugin-vue-layouts 实用教程

一个常见的需求是&#xff0c;同模块的若干页面需要使用同一种布局&#xff0c;比如俱乐部相关的页面的顶部需要展示俱乐部的名称&#xff0c;其他页面顶部需要展示网站名称。 通常实现的方法是&#xff0c;将俱乐部的名称和网站名称定义成公共组件&#xff0c;在每个页面都书…...

前端性能优化-实测

PageSpeed Insights 性能测试 今天测试网站性能的时候发现一个问题&#xff0c;一个h2标签内容为什么会占据这么长的渲染时间&#xff0c;甚至有阶段测到占据了7000多毫秒&#xff0c;使用了很多方法都不能解决&#xff0c;包括了修改标签&#xff0c;样式大小等&#xff0c;当…...

【Linux】初识操作系统

一、冯•诺依曼体系结构 在学习操作系统之前&#xff0c;我们先来认识一下冯•诺依曼体系结构&#xff0c;我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。 截至目前&#xff0c;我们所认识的计算机&am…...

等保2.0中,如何确保云服务提供商的数据主权合规?

等保2.0中云服务提供商的数据主权合规措施 等保2.0&#xff08;网络安全等级保护2.0&#xff09;是中国的网络安全标准&#xff0c;旨在确保云服务提供商的数据主权合规。以下是一些关键措施和要求&#xff1a; 数据地理位置要求&#xff1a;云服务提供商必须保证所有基础设施位…...

【AI大模型】Transformers大模型库(十四):Datasets Viewer

目录 一、引言 二、Datasets Viewer数据查看器 2.1 概述 2.2 示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库&#xff0c;为huggingface上数以万计的预训练大模型提供预测、训练等服务。 &#x1f917; Transformers 提供了数以千计的预训练…...

一个例子理解傅里叶变换的计算过程

假设我们有一个简单的信号&#xff0c;由两个不同频率的正弦波组成&#xff0c;我们希望通过傅里叶变换来分析其频谱。 示例信号 假设我们有一个信号 &#xff1a; 这个信号由两个频率成分组成&#xff1a;一个50 Hz的正弦波和一个120 Hz的正弦波&#xff0c;后者的振幅是前者…...

2-2到2-4

计算出所有人的平均年龄&#xff1a; val lines sc.textFile("/root/data/scala/people/page.txt") val count lines.count() val total lines.map(line > line.split(" ")(1)).map(t>t.trim.toInt).collect().reduce((a,b)>ab) val avgAge …...

Vatee万腾平台:一站式智慧服务,让生活更美好

在数字化浪潮席卷全球的今天&#xff0c;我们生活的方方面面都在经历着前所未有的变革。Vatee万腾平台凭借其一站式智慧服务&#xff0c;正成为推动这场变革的重要力量&#xff0c;让我们的生活变得更加美好。 Vatee万腾平台&#xff0c;作为一家专注于提供智慧服务的领军企业&…...

如何选择一个好的汽车油封制造商?

汽车的每一个零部件都至关重要&#xff0c;其中&#xff0c;油封的作用更是不可忽视。它们确保了液体和气体在汽车内部的正确流动&#xff0c;防止了泄漏。因此&#xff0c;选择一个可靠的汽车油封制造商就显得尤为重要。那么&#xff0c;我们应该如何做出明智的选择呢? 首先…...

构建高效的电商返利系统:架构设计与实现

构建高效的电商返利系统&#xff1a;架构设计与实现 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 电商返利系统作为连接消费者和商家的桥梁&#xff0c;能够…...

如何使用 Python 交互式解释器?

1. 什么是Python交互式解释器&#xff1f; Python交互式解释器是一种REPL&#xff08;Read-Eval-Print Loop&#xff09;环境。它会读取用户输入的代码&#xff0c;执行代码&#xff0c;并输出结果&#xff0c;随后等待下一个用户输入。这种交互方式使得Python非常适合快速原型…...

C++日期类的完整实现,以及this指针的const修饰等的介绍

文章目录 前言一、日期类的实现二、this指针的const修饰总结 前言 C日期类的完整实现&#xff0c;以及this指针的const修饰等的介绍 一、日期类的实现 // Date.h #pragma once#include <iostream> using namespace std;#include <assert.h>class Date {// 友元函…...

缓冲区溢出

本文作者&#xff1a;杉木涂鸦智能安全实验室 前置知识点 栈 栈&#xff08;Stack&#xff09;是计算机中的一种数据结构&#xff0c;用于存储临时数据。它的特点是后入先出&#xff08;LIFO&#xff09;&#xff0c;只能在栈顶添加或删除数据。在程序中&#xff0c;栈被用于…...

step7:“模拟量界面”逻辑

文章目录 文章介绍效果图AnalogPage.qml结构图调用 SerialPortHandler.sendData(message); serialporthandler.cpp 文章介绍 之前的6步实现了案例MF的界面设计和串口界面的逻辑设计&#xff0c;本文将实现模拟量界面的逻辑设计 新增功能&#xff1a; 1&#xff09;弹出提示框 …...