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

蓝桥备赛(11)- 数据结构、算法与STL

一、数据结构

1.1 什么是数据结构?

在计算机科学中,数据结构是一种   数据组织、管理和存储的格式。它是相互之间存在一种
或多种特定关系的数据元素的集合
--->  通俗点,数据结构就是数据的组织形式 , 研究数据是用什么方式存储在存储在g'v计算机中的

1.2 为什么会有数据结构?

1) 随着计算机的发展和应用范围的拓展,计算机需要处理的数据量越来越大,数据类型越来越多,数据之间的关系也越来越复杂

2)这就要求⼈们对计算机加工处理的数据进行系列的研究,即研究数据的特性、数据之间存在的关系,以及如何有效的组织、管理存储数据, 从而提高计算机处理数据的效率。

1.3 数据结构的三要素

1.3.1 逻辑结构

数据结构:数据中各元素之间的逻辑关系

只关心数据中各个元素之间的关系 , 并不关心数据在内存中存储的

1)集合: 所有数据只是放在一个集合中 , 彼此之间再没有其他联系

2)线性结构:数据之间只存在一对一的关系

3)树:数据之间是一对多的关系

4)图结构:数据之间存在多对多的关系

1.3.2 存储结构

存储结构又称 物理结构 , 但是存储二字 更能理解 ,后续我们统称为数据结构。

存储结构 顾名思义 , 就是如何把数据在计算机中存储。

1) 顺序存储:把逻辑上相邻的元素存储在  物理上也相邻的存储单元中  ---> 数组(逻辑、物理上都是连续的)

2)链式存储:逻辑上两个元素相邻 , 但是物理结构上不一定相邻 

 

1.3.3 数据的运算

数据的运算,(针对数据的各种操作) , 包括数据结构的实现 , 以及基于数据结构上的各种操作。

--->   意思是 , 我们已经知道了一堆数据中  各个元素之间的关系 , 也知道这堆数据应该在内存中如何存储 。

----> 那么接下来就是写代码 , 完成我们的需求

二、算法

2.1 什么是算法?

简单来说 --->  算法就是一系列的步骤  , 用来将输入数据转化为输出结果(用来解决问题)

 

2.2 算法好坏的度量

算法设计好后,根据算法的设计原理,只要问题规模确定,算法中 基本语句执行次数 和 需求资源个数 基本也就确定了。
比如求 1 + 2 + 3 + ... + ( n − 1) + n ,可以设计三种算法:
算法A : 需要 开辟大小为N 的空间
const int N = 1e5 + 10;
int a[N];
int sum(int n)
{// 先把 1 ~ n 存起来for(int i = 1; i <= n; i++){a[i] = i;}// 循环逐个数字相加int ret = 0;for(int i = 1; i <= n; i++){ret += a[i];}return ret;
}

算法B:不需要开辟空间 , 直接求和;

int sum(int n)
{// 循环逐个数字相加int ret = 0;for (int i = 1; i <= n; i++) {ret += i;}return ret;
}

算法执行所需资源的个数与问题的规模 n 有关 。因此可以根据算法执行过程中对空间的消耗来衡量算法的好坏 , 这就是空间复杂度 。

算法C:需要循环 n 次 , ret += n 语句会执行 n 次 , 而且随着问题规模的增长 , 执行次数也会增长 。

int sum(int n)
{int ret = 0;// 循环逐个数字相加for (int i = 1; i <= n; i++) {ret += i;}return ret;
}

 算法D : 不管问题规模 n 为多少 , ( 1 + n ) * n / 2 语句只会执行1次。

int sum(int n)
{// 利⽤求和公式return (1 + n) * n / 2;
}

算法中基本语句总的执行次数与问题规模 n 有关 。因此可以根据算法执行过程中 , 所有语句被执行的次数之和来衡量算法的好坏这就是时间复杂度 。  

综上所述 , 时间和空间的消耗情况就是我们度量一个算法好坏的标准 , 也就是时间复杂度和空间复杂度 。 

2.3 时间复杂度

在计算机中 , 算法的时间复杂度是一个函数式 T(N)他定量描述了该算法的运行时间 。这个T(N)函数式计算了程序中语句的执行次数 。

计算一下 fun 中++count 语句总共执行了多少次 。

void fun(int N) 
{ int count = 0; for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { ++count; // 执⾏次数是 n*n,也就是 n^2} } for(int k = 0; k < 2 * N; k++) {++count; // 执⾏次数是 2*n} int M = 10; while(M--) { ++count; // 执⾏次数 10} 
}

 

2.3.1 大O表示法

因此,在计算时间复杂度的时候,一 般会把中对结果影响不大的项忽略掉 ,这种表示时间复杂度的方式称 为大 O 渐进时间复杂度 - 粗略的估计方式 只看影响时间开销最大的⼀项。

2.3.2 最优、平均和最差时间复杂度

案例:在 n 个整形元素数组中,检测 x 是否存在,若存在返回其在数组中的下标,否则返回 −1
int find (int a[], int n, int x)
{for (int i = 0; i < n; i++){if (a[i] == x) return i;}return -1;
}

1) 在查找过程中,  x 与数组中元素依次比较, 因此总的比较次数就是该算法的时间复杂度。
--->   若待查找元素 x 21 ,只需要比较 1 次,为算法的最优(好)情况
--->   若带查找元素 x 17 ,或者是不存在的元素,需要比较 n 次,为算法的最坏(差)情况
--->   所有情况的比较 次数之和,除以总情况,为算法的平均情况。

无论是在竞赛还是工程中,算法的时间复杂度⼀般为最差情况。 因为最差情况是人对⼀件事情所能承受的底线 因此 find 算法的时间复杂度为 O(n )

 

2.3.3 时间复杂度计算案例

案例一:

案例二:

基本语句 ++count 关于问题规模 n 总执行次数的数学表达式为: f ( n ) = 1000
不论 n 如何变化, ++count 总的执行次数都是 1000 故时间复杂度为: O(1)

 案例三:

void func3(int m, int n)
{for (int i = 0; i < m; i++){printf("hello\n");}for (int i = 0; i < n; i++){printf("hello\n");}
}
基本语句 printf("") 总的执行次数为 f(m, n) = m + n
m 和 n 的变化都是影响基本语句执行次数, 即m  和 n 都是问题规模, 故时间复杂度为
O ( m + n ) 或者也可以表示为 O(max(m,n))  

案例四:

 基本语句 printf("") 总的执行次数为 f(m, n) = m x n

m 和 n 的变化都是影响基本语句执行次数, 即m  和 n 都是问题规模, 故时间复杂度为
O ( m x   n )

案例5:

void func5(int n)
{int cnt = 1;while (cnt < n){cnt *= 2;}
}

案例六:

递归算法时间复杂度求解方式为,单次递归时间 × 总的递归次数。
注意,这里只是简易的估算方式。递归算法的时间复杂度严谨的计算方法是 利用主定理 (Master Theorem)来求得递归算法的时间复杂度
                                               O( n )

 

2.4 空间复杂度

在算法竞赛中,空间复杂度就是整个程序在解决这个问题时, ⼀共使用了多少空间。相比较于时间复杂度,空间复杂度就没那么受关注,因为多数情况下题目所给的内存限制是非常宽裕的。 但是,这并不表明可以肆无忌惮的使用空间,一旦超出给定的限制,程序也是不会通过的。 - MLE

案例一:冒泡排序 

#include <iostream>
using namespace std;const int N = 20;
int arr[N];int main(){int n = 0;cin >> n;int i = 0;//输入 for(i=0; i < n; i++)cin >> arr[i];//排序for(i = 0; i < n-1; i++){int j = 0;for(j = 0; j <= n-1-i; j++){if(arr[j] < arr[j+1]){int tmp = arr[j];arr[j] = arr[j+1];arr[j+1] = tmp; }}} //输出for(i=0; i < n; i++){cout << arr[i] << endl;}return 0;}

案例二:递归求阶乘

 

2.5 常见复杂度的增长对比

 

2.6 算法中的时间和空间限制

1. 信息学竞赛中,C++ 通常设定 1 到 2 秒的时间限制,运行次数在 10^7 ⾄ 10^8 之间。
2.空间限制在128MB 或 256MB ,可以开⼀个3 x 10 ^7 大小的int  类型数组,或者5000x5000大小的二维数组,⼀般情况下都是够⽤的。
各种数据量下,可选用的算法的时间复杂度:

三、STL

3.1 C++标准库

1) C++标准是C++编程语言的规范,由国际标准化组织(ISO)制定。C++标准的发展历程可以追溯到 1998年,当时ISO/IEC 14882:1998标准被发布,这是第⼀个C++标准,常被称为C++98。随后,C++标准经历了多次更新和修订,包括C++03(2003年)、C++11(2011年)、C++14(2014年)、C++17(2017年)以及 C++20。
2)最新的C++标准是C++23,于2023年发布,引入了许多新特性, 但目前完整的编译器较少。
3)每⼀个版本的 C++ 标准不仅规定了 C++ 的语法、语言特性,还规定了⼀套 C++ 内置库的实现规范,这个库便是 C++ 标准库。C++ 标准库中包含大量常用代码的实现,如输入输出、基本数据结构、内存管理、多线程支持等。
4)我们可以这样简单的理解,C++ 给我们提供了一大堆的代码,这些代码里面包含特别多已经实现好的   数据结构 和 算法  因此,在做题的时候,如果涉及的数据结构和算法 C++ 标准库已经帮我们实现好 了,那么就可以直接使用,避免重复造轮子 --- sort / min / max / swap
1) 造轮子指的是重复发明已有的算法,或者重复编写现成优化过的代码。
2)造轮子通常耗时好力,同时效果还没有别人好。但若是为了学习或者练习,造轮子则是必要的。
因此,学好 C++ 标准库能极大的提高编程效率。

3.2 什么是STL?

STL 即标准模板库(Standard Template Library),是 C++ 标准库的一部分, 里面包含了⼀些模板化的通过用的数据结构和算法 。由于其模板化的特点,它能够兼容自定义的数据类型,避免大量的造轮子工作。
NOI 和 ICPC 赛事都支持 STL 库的使用,当然, 蓝桥杯也是支持的 。因此,⼀定要学习 STL 的使用, 能够极大的提高编写代码的效率。

3.3 怎么学习STL?

模范使用!!! STL 的实现涉及比较⾼深的 C++ 知识, 比如类、模板、容器适配器等 。如果想 搞清楚背后的原理,就必须要学会这些知识。但是这些知识在竞赛中是用不到的,如果深究,会浪费
大量无用的时间。因此,目前先把重点放在如何使用上

相关文章:

蓝桥备赛(11)- 数据结构、算法与STL

一、数据结构 1.1 什么是数据结构&#xff1f; 在计算机科学中&#xff0c;数据结构是一种 数据组织、管理和存储的格式。它是相互之间存在一种 或多种特定关系的数据元素的集合。 ---> 通俗点&#xff0c;数据结构就是数据的组织形式 &#xff0c; 研究数据是用什么方…...

C++ 二叉搜索树代码

C 二叉搜索树代码 #include <iostream> using namespace std;template<typename T> struct TreeNode{T val;TreeNode *left;TreeNode *right;TreeNode():val(0), left(NULL), right(NULL){}TreeNode(T x):val(x), left(NULL), right(NULL){} };template<typena…...

Flask 打包为exe 文件

进入虚拟环境 激活虚拟环境 .venv\Scripts\activatepython build.py 完成标识图片 已经完成打包了&#xff0c;完成&#xff0c;下边是我自己记录的 这时候&#xff0c;我自己数据库文件夹下是没有sql 脚本的&#xff0c;要自己拷贝下这个路径下的文件 E:\开源文件\python-wi…...

JavaWeb-idea配置smart tomcat

一&#xff0c;安装smart tomcat插件 在插件市场搜索smart tomcat 点击安装&#xff0c;我已经安装成功。 二&#xff0c;web项目配置tomcat 点击这里&#xff0c;选择edit 进来之后&#xff0c;选加号 然后选tomcat 在这里&#xff0c;配置完毕后&#xff0c;点apply&…...

DELETE/ UPDATE/ INSERT 语句会自动加锁

在数据库系统中&#xff0c;DELETE、UPDATE 和 INSERT 语句通常会自动加锁&#xff0c;以确保数据的一致性和并发控制。具体的锁类型和效果取决于数据库的实现&#xff08;如 MySQL、PostgreSQL 等&#xff09;以及事务的隔离级别。以下是这些操作通常加锁的行为和效果&#xf…...

docker本地部署ollama

启动ollama容器 1.使用该命令启动CPU版运行本地AI模型 docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama 2.此命令用于启动GPU版本运行AI模型 前提是笔记本已配置NVIDIA的GPU驱动&#xff0c;可在shell中输入nvidia-smi查看详细情况…...

Linux线程机制

Linux 操作系统中的线程机制是基于 POSIX 线程&#xff08;Pthreads&#xff09; 标准实现的&#xff0c;通常称为 pthread。Linux 内核通过Native POSIX Thread Library提供了对多线程的支持。 1. 线程的基本概念 线程是进程中的一个执行单元&#xff0c;是 CPU 调度的基本单…...

LeetCode热题100JS(44/100)第八天|二叉树的直径|二叉树的层序遍历|将有序数组转换为二叉搜索树|验证二叉树搜索树|二叉搜索树中第K小的元素

543. 二叉树的直径 题目链接&#xff1a;543. 二叉树的直径 难度&#xff1a;简单 刷题状态&#xff1a;1刷 新知识&#xff1a; 解题过程 思考 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,4,5] 输出&#xff1a;3 解释&#xff1a;3 &#xff0c;取路径 [4,2,1,3] 或…...

Java与数据库

目录 一.本文焦点&#xff1a; 二.数据库常用数据类型 三.对数据库操作 四.对数据库中的表操作 五.条件表达 六. 表查询操作进阶 1.多表连接查询 1&#xff09;交叉连接查询 2&#xff09;内连接&#xff08;取两表交集&#xff09; 3&#xff09;外连接 4&#xff09…...

MySQL表中数据基本操作

1.表中数据的插入&#xff1a; 1.insert insert [into] table_name [(column [,column]...)] values (value_list) [,(value_list)] ... 创建一张学生表&#xff1a; 1.1单行指定列插入&#xff1a; insert into student (name,qq) values (‘张三’,’1234455’); values左…...

基于GeoTools的GIS专题图自适应边界及高宽等比例生成实践

目录 前言 一、原来的生成方案问题 1、无法自动读取数据的Bounds 2、专题图高宽比例不协调 二、专题图生成优化 1、直接读取矢量数据的Bounds 2、专题图成果抗锯齿 3、专题成果高宽比例自动调节 三、总结 前言 在当今数字化浪潮中&#xff0c;地理信息系统&#xff08;…...

蓝桥与力扣刷题(蓝桥 数字三角形)

题目&#xff1a; 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;你的任务就是找到最大的和&#xff08;路径上的每一步只可沿左斜线向下或右斜线向下走&#xff09;。 输入描述…...

6. PromQL的metric name(在node exporter复制下来交给AI解释的)

目录 前言&#xff1a; Go 运行时指标&#xff1a; Go 内存统计指标&#xff1a; CPU 指标&#xff1a; 内存指标&#xff1a; 磁盘指标&#xff1a; 网络指标&#xff1a; 系统指标&#xff1a; 前言&#xff1a; 写这个得目的是为了后续方便查询&#xff0c;因为在pro…...

Windows设置目录及子目录大小写不敏感暨git克隆报错同名文件已存在的解决办法

在Windows系统中设置目录及其子目录为大小写不敏感&#xff0c;可以通过以下步骤完成&#xff1a; 步骤说明&#xff1a; 以管理员身份运行命令提示符或PowerShell 右键点击“开始”菜单&#xff0c;选择“命令提示符&#xff08;管理员&#xff09;”或“Windows PowerShell&…...

关于tresos Studio(EB)的MCAL配置之GPT

概念 GPT&#xff0c;全称General Purpose Timer&#xff0c;就是个通用定时器&#xff0c;取的名字奇怪了点。定时器是一定要的&#xff0c;要么提供给BSW去使用&#xff0c;要么提供给OS去使用。 配置 General GptDeinitApi控制接口Gpt_DeInit是否启用 GptEnableDisable…...

VScode 中文符号出现黄色方框的解决方法

VScode 中文符号出现黄色方框的解决方法 我的vscode的python多行注释中会将中文字符用黄色方框框处&#xff1a; 只需要打开设置搜索unicode&#xff0c;然后将这一项的勾选取消掉就可以了&#xff1a; 取消之后的效果如下&#xff1a; 另一种情况&#xff1a;中文显示出现黄色…...

WordPress使用(3)

前面文章讲述了如何利用docker进行wordpress系统的安装及相关设置&#xff0c;本文将介绍如何进行站点数据和数据库数据的备份。 1. 备份数据库 # 进入mysql容器内部 docker exec -it mysqlwp bash# 使用mysqldump 命令导出数据库 mysqldump -u root -p wordpress > wordp…...

Shell编程概述与Shell变量

目录 一、Shell编程基础 1.1、Shell脚本使用场景 1.2、Shell脚本的格式 1.3、Shell脚本的执行 1.4、Shell脚本错误调试 二、 重定向与管道符 2.1、重定向 2.2、管道符 三、Shell变量 3.1、变量分类 3.2、特殊符号 3.3、整数运算 3.4、read 3.5、局部变量与全局变量…...

使用QT + 文件IO + 鼠标拖拽事件 + 线程 ,实现大文件的传输

第一题、使用qss&#xff0c;通过线程&#xff0c;使进度条自己动起来 mythread.h #ifndef MYTHREAD_H #define MYTHREAD_H#include <QObject> #include <QThread> #include <QDebug>class mythread : public QThread {Q_OBJECT public:mythread(QObject* …...

【电路笔记】-时序逻辑电路

时序逻辑电路 文章目录 时序逻辑电路1、概述2、时序逻辑的分类3、时序逻辑SR触发器4、NAND门SR触发器5、正NAND门SR触发器6、NOR门SR触发器7、时序逻辑作为开关去抖电路8、门控或时钟SR触发器时序逻辑电路使用触发器作为存储元件,其输出取决于输入状态。 1、概述 与组合逻辑电…...

随机树算法 自动驾驶汽车的路径规划 静态障碍物(Matlab)

随着自动驾驶技术的蓬勃发展&#xff0c;安全、高效的路径规划成为核心挑战之一。快速探索随机树&#xff08;RRT&#xff09;算法作为一种强大的路径搜索策略&#xff0c;为自动驾驶汽车在复杂环境下绕过静态障碍物规划合理路径提供了有效解决方案。 RRT 算法基于随机采样思想…...

【AI深度学习基础】PyTorch初探

引言 PyTorch 是由 Facebook 开源的深度学习框架&#xff0c;专门针对 GPU 加速的深度神经网络编程&#xff0c;它的核心概念包括张量&#xff08;Tensor&#xff09;、计算图和自动求导机制。PyTorch作为Facebook开源的深度学习框架&#xff0c;凭借其动态计算图和直观的API设…...

探索.NET 10 的新特性,开发效率再升级!

前言 最近&#xff0c;.NET 10 发布啦&#xff0c;作为长期支持&#xff08;LTS&#xff09;版本&#xff0c;接下来的 3 年里它会给开发者们稳稳的幸福。今天咱就来唠唠它都带来了哪些超实用的新特性。可在指定链接下载。 新特性 下面将介绍了.NET 10的新特性&#xff0c;其…...

< 自用文儿 > CertBot 申请 SSL 证书 使用 challenge 模式 避开防火墙的阻挡

环境&#xff1a; 腾讯 VPS 腾讯会向你销售 SSL &#xff0c; 这个本是免费的。CertBot 默认申请证书要用到 80 端口&#xff0c;会蹭边什么什么条款&#xff0c;备案法律来阻止80端口的通讯&#xff0c;没有网站也一样被阻拦。 通过腾讯买的域名&#xff1a; bestherbs.cn …...

系统架构评估方法-ATAM方法

架构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM) 是在SAAM的基础上 发展起来的&#xff0c;主要针对性能、实用性、安全性和可修改性&#xff0c;在系统开发之前&#xff0c;对这些质量属性 进行评价和折中。 (1)特定目标。 ATAM的目标是在考虑多个相互影响的质…...

deepseek在pycharm 中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm&#xff0c;如何接入deepseek是我们窥探ai代码编写的第一步&#xff0c;熟悉起来总没坏处。 1、官网安装pycharm社区版&#xff08;免费&#xff09;&#xff0c;如果需要安装专业版&#xff0c;需要另外找破解码。 2、安装Ollama…...

硬通货用Deekseek做一个Vue.js组件开发的教程

安装 Node.js 与 Vue CLI‌ npm install -g vue/cli vue create my-vue-project cd my-vue-project npm run serve 通过 Vue CLI 可快速生成项目骨架&#xff0c;默认配置适合新手快速上手 目录结构‌ src/ ├── components/ # 存放组件文件 │ └── …...

类、方法和变量可使用的访问控制符和修饰符的表格展示

1. 类的修饰符 修饰符类别修饰符说明访问控制符public顶级类使用时&#xff0c;对所有包可见。嵌套类也可以使用。默认没有写访问修饰符时&#xff0c;仅在同一包内可见。protected (仅嵌套类)同一包内以及不同包的子类可见。private (仅嵌套类)仅在外部类内部可见。非访问修饰…...

FreeRTOS 任务管理与运行时间统计:API 解析与配置实践

1. FreeRTOS 任务相关 API 函数 1.1 FreeRTOS 任务相关 API 函数介绍 FreeRTOS 提供了一系列 API 来管理任务的状态、优先级和运行信息。以下是任务管理相关的主要 API 及其功能说明&#xff1a; 1.1.1 任务优先级管理 API 函数作用uxTaskPriorityGet()获取任务的当前优先级…...

基于提示驱动的潜在领域泛化的医学图像分类方法(Python实现代码和数据分析)

摘要 医学图像分析中的深度学习模型易受数据集伪影偏差、相机差异、成像设备差异等导致的分布偏移影响&#xff0c;导致在真实临床环境中诊断不可靠。领域泛化&#xff08;Domain Generalization, DG&#xff09;方法旨在通过多领域训练提升模型在未知领域的性能&#xff0c;但…...

【C++】5.4.3 范围for语句

范围for语句基本形式&#xff1a; for(声明变量:序列容器) {循环执行语句; } 其中&#xff0c;“序列容器”是指花括号括起来的初始值列表、数组、vector或者string等类型的对象&#xff0c;主要特点是拥有能返回迭代器的 begin() 和 end() 成员; “声明变量”是一个类似声明…...

LeetCode 排序章节

快速排序 简单 LCR 159. 库存管理 III 仓库管理员以数组 stock 形式记录商品库存表&#xff0c;其中 stock[i] 表示对应商品库存余量。请返回库存余量最少的 cnt 个商品余量&#xff0c;返回 顺序不限。 示例 1&#xff1a; 输入&#xff1a;stock [2,5,7,4], cnt 1 输出&a…...

常见的限流算法有哪些?

一、固定窗口算法&#xff08;Fixed Window&#xff09; 原理&#xff1a; 将时间划分为固定长度的窗口&#xff08;如1秒、1分钟&#xff09;&#xff0c;每个窗口内统计请求次数&#xff0c;超过阈值则拒绝后续请求。例如&#xff1a;每秒限流100次&#xff0c;窗口结束后计…...

【pyqt】(十一)单选框

控件-单选框 单选框的类名为QRadioBox&#xff0c;在学习新的控件的时候&#xff0c; 需要掌握的内容主要除了属性之外&#xff0c;其信号触发方法也非常重要。还可以利用Designer来辅助我们进行学习&#xff0c;尤其是利用Designer的属性展示和设置。 单选框中&#xff0c;最…...

深度解析:视频软编码与硬编码的优劣对比

视频编码 一、基本原理与核心技术 压缩原理 通过时空冗余消除实现数据压缩&#xff1a; 空间冗余&#xff1a;利用帧内预测&#xff08;如DC/角度预测&#xff09;消除单帧内相邻像素相似性。时间冗余&#xff1a;运动估计与补偿技术&#xff08;ME/MC&#xff09;减少连续帧间…...

[Windows] 批量为视频或者音频生成字幕 video subtitle master 1.5.2

参考原文&#xff1a;[Windows] 批量为视频或者音频生成字幕 video subtitle master 1.5.2 Video Subtitle Master 1.5.2 介绍 Video Subtitle Master 1.5.2 是一款功能强大的客户端工具&#xff0c;能够批量为视频或音频生成字幕&#xff0c;还支持批量将字幕翻译成其他语言…...

Lab 3 Page Table

题目链接 我的问题&#xff1a; 1 每个进程的kernel stack是干啥的来着&#xff1f;在何时初始化的&#xff1f; 题目2&#xff1a;A kernel page table per process (hard) 1 一些题目要求 Your first job is to modify the kernel so that every process uses its own c…...

爬虫逆向:脱壳工具 frida-dexdump 的使用详解

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 1. 工具简介1.1 frida-dexdump介绍1.2 frida-dexdump支持场景1.3 frida-dexdump优点1.4 frida-dexdump工具使用方法2. 环境准备3. 安装 frida-dexdump4. 使用步骤4.1 步骤一:连接 Android 设备4.1 步骤二:安装目标应用…...

图论-腐烂的橘子

994.腐烂的橘子 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a;值 0 代表空单元格&#xff1b; 值 1 代表新鲜橘子&#xff1b; 值 2 代表腐烂的橘子。 每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到…...

FPGA-DE2115开发板实现4位全加器、3-8译码器。

文章目录 一、安装quartus二、4位全加器三、3-8译码器&#xff08;8段数码管&#xff09;四、参考文章 一、安装quartus 安装quartus参考文章&#xff1a;Quartus Prime 18.0与ModelSim的安装 Quartus II 18.0安装教程&#xff08;非常详细&#xff09;从零基础入门到精通&…...

【leetcode hot 100 48】旋转图像

方法一&#xff1a;&#xff08;原地旋转&#xff09;对于矩阵中第 i 行的第 j 个元素&#xff0c;在旋转后&#xff0c;它出现在倒数第 i 列的第 j 个位置。matrix[row][col]在旋转后的新位置为matrix[col][n−row−1]。只要旋转四次就能回到原点。 class Solution {public vo…...

TWind 的黑马点评随笔

TWind 的黑马点评随笔 ​ 目前是把黑马点评的技术部分完全做完了&#xff0c;不能说吃得饱饱&#xff0c;也算个半饱吧。 ​ 黑马点评严格来说不算项目&#xff0c;因为它给的前端过于垃圾&#xff0c;内容又重在Redis&#xff0c;所以称之为Redis练习貌似跟贴切。 ​ 尽管如…...

Fork/Join 框架详解:分支合并的高性能并发编程

目录 引言 一、Fork/Join 框架概述 1.1 什么是 Fork/Join 框架&#xff1f; 1.2 Fork/Join 框架的核心组件 二、Fork/Join 框架的使用步骤 三、Fork/Join 框架的示例 3.1 示例 1&#xff1a;计算数组元素之和 代码实现 代码解析 3.2 示例 2&#xff1a;并行排序 代码…...

爬虫逆向:脱壳工具ZjDroid的使用详解

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 1. 工具简介2. 环境准备3. ZjDroid工具的使用方法4. 使用步骤4.1 步骤一:连接 Android 设备4.2 步骤二:安装目标应用4.3 步骤三:启动 ZjDroid 脱壳脚本4.4 步骤四:触发应用加载壳内代码4.5 步骤五:获取脱壳后的文件…...

上海市闵行区数据局调研云轴科技ZStack,共探数智化转型新路径

为进一步深化人工智能、大模型技术的应用&#xff0c;推动区域数字经济高质量发展&#xff0c;2025年2月27日&#xff0c;上海市闵行区数据局局长吴畯率队赴上海云轴科技股份有限公司&#xff08;以下简称“云轴科技ZStack”&#xff09;开展专题调研。此次调研旨在深入了解企业…...

Python----数据分析(Matplotlib五:pyplot的其他函数,Figure的其他函数, GridSpec)

一、pyplot的其他函数 1.1、xlabel 在matplotlib中&#xff0c; plt.xlabel() 函数用于为当前活动的坐标轴&#xff08;Axes&#xff09;设置x轴的 标签。当你想要标识x轴代表的数据或单位时&#xff0c;这个函数非常有用。 plt.xlabel(xlabel text) 1.2、ylabel 在matplotl…...

Android Coil总结

文章目录 Android Coil总结概述添加依赖用法基本用法占位图变形自定义ImageLoader取消加载协程支持缓存清除缓存监听 简单封装 Android Coil总结 概述 Coil 是一个用于 Android 的 Kotlin 图像加载库&#xff0c;旨在简化图像加载和显示的过程。它基于 Kotlin 协程&#xff0…...

mybatisplus 开发流程

目录 什么是mybatisplus&#xff1f; 创建项目 先创建一个简单的Java项目​编辑 引入依赖 1.引入父依赖 2.引入其他依赖 springboot配置 application.yml qppication-dev.yml 创建包 实体类 映射&#xff08;创建一个接口&#xff09; 构建测试环境 进行方法的实…...

父进程和子进程

思维导图&#xff1a; 1.使用父子进程实现一个图片的拷贝 要求父进程拷贝前一部分 子进程拷贝后一部分 使用diff查看两个文件是否相同 #include <head.h> int main(int argc, const char *argv[]) {int fd1open("/home/ubuntu/3.6/xiaoxin.bmp",O_RDONLY);…...

网络安全 信息安全 计算机系统安全

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、网络安全概述 1、网络安全&#xff1a;网络安全是指通过采取必要措施&#xff0c;防范对网络的攻击、侵入、干扰、破坏和非法使用以及意外事故&#xff0c;…...