保研面试408复习 6——计组存储器、数据结构、离散数学、特征值

文章目录

  • 一、计组
    • 1、cache的全名、作用、映射方式和写操作的具体实现、多级cache
      • 补充:存储器知识
    • 2、流水线数据冒险以及解决方式
  • 二、数据结构
    • 1、分布式场景下,十个计算节点的大规模排序问题
    • 2、红黑树和B树
      • B树的使用场景、优点、能够维护什么样的操作等
      • 红黑树的使用场景、优点、能够维护什么样的操作等
    • 3、生成树算法的使用场景
  • 三、离散数学
    • 1、集合论
    • 2、鸽巢定理
    • 3、容斥原理
    • 2、判断平面图,K5,K33定理之类的
  • 特征值和特征向量的意义
  • 你觉得科研成功最重要的因素是什么

标记表示记忆,标黑表示注意

一、计组

1、cache的全名、作用、映射方式和写操作的具体实现、多级cache

(1)全名
高速缓冲存储器

高速缓存

(2)作用

Cache的主要作用是存储那些由CPU频繁访问的数据和指令,从而减少访问主内存的次数,提高系统的整体性能,减少访存平均时间

(使用局部性原理思想:空间局部性即一次从主存中调入一个块,时间局部性即存在高速缓存中方便下次访问,再次访问时速度更快。)

(3)映射方式
(映射方式指的是主存地址映射成cache地址的方式。)

地址映射方式分为:全相联映射 、直接映射 、组相联映射。

(4)写操作的具体实现
(写操作指的是CPU想要往主存中写一个数据(修改)。如果这个数据在cache中,若不同时更新cache和内存,则必将导致不一致的情况)

写直达、写回、写缓冲

(5)多级cache
第一级cache更注重速度,第二级cache更注重命中率,速度都比访问主存快得多。

补充:存储器知识

(1)局部性原理

在这里插入图片描述
(2)存储器的层次结构
存储器层次结构:一种由多存储器层次组成的结构,存储器的容量和访问时间随着离处理器距离的增加而增加。
这样组织的原因是:利用局部性原理,使得CPU访问存储器更快

  • 如:离CPU 最近的依次是 Cache 、内存、磁盘,访问它的速度越来越慢,容量也越来越大。
    原因是使用的硬件实现不一样,cache是SRAM(静态随机访问存储),内存是DRAM(动态随机访问存储),动态和静态的区别除了速度快,还有一个区别是,动态的需要隔几毫秒进行一次刷新,维持数据。

(3)主存地址映射
地址映射:应用某种函数,将主存地址映射到Cache中定位,从而可以将内存地址变换成Cache地址,完成CPU的访问。
地址映射方式也决定了CPU访问cache的方式,cache的结构,主存和cache地址交换的方式。
地址映射方式分为:全相联映射 、直接映射 、组相联映射。

注意主存到cache的存储信息交换的单位是块,CPU访问cache时都是先找块地址,而不是找具体数据地址。数据对应的块在cache内,则必然数据也在cache内

  • 全相联映射:内存中的一个块,可以放在cache中的任意块的位置。
    • 仅仅使用块地址比对
  • 直接映射:其中每个固定的存储器地址仅仅对应到 cache中的一个固定位置。
    • 主存地址中划分出一个块号,对应与cache中的第几块。对于一个cache块中的块是否是所需的,需要比较标记字段。
    • 时间局部性存在问题,cache中同一个地方被覆盖,但再次访问又缺失了。
  • 组相联映射结合直接映射和全相连映射的特点,在组内采用全相连映射,任意放置,而一个内存中的数据地址放在一个固定的组内。

(4)写操作的处理

  • 写直达:同时更新cache和主存。直达cache和主存。
  • 写回:只更新cache,cache被替换时写回至主存。(dirty位)
  • 写缓冲:更新cache和写缓冲即可,由写缓冲代之写入主存。
  • 写缺失:也就是在cache中,这个块并不存在,则发生了缺失。我们需要先将块调入cache中,然后更新。

(5)虚拟存储器
在仅仅考虑cache和主存的关系时,不需要考虑虚拟存储的问题,直接认为cache和主存进行交互,CPU给的是主存物理地址即可。
如果考虑虚拟存储器,那么就引入了多进程概念了,开始考虑主存和磁盘之间的映射。页表启动!
在这里插入图片描述
cache是主存的cache,主存是磁盘的cache。
虚拟存储器:一种将主存用作辅助存储器高速缓存的技术。实际上就是让各进程认为自己有一个单独的地址空间。

  • 在主存中维护一个页表用于虚拟页地址到主存页地址的映射。(CPU给出的是虚拟地址,通过页表基址寄存器和虚拟地址的虚页号可以在页表中可以找到对应的页表项,页表项中存了该页在磁盘中的位置,通过全相联的方式映射到主存中,这时更新后页表项中就存的时主存物理地址的页位置,使用虚拟地址的页内地址和物理页地址合并,就可以得到物理地址。为了使得CPU虚拟地址找到物理地址速度更快,使用TLB快表来实现。TLB存的是 最活跃的页表项,直接用虚拟地址页和TLB的所有虚拟地址比一遍。)

主存到磁盘的存储信息交换的单位是页,页远大于块。
在这里插入图片描述
也采用写回的方式,因为访问磁盘开销太大了。

ps:cache和页表都有引用位和脏位,cache的全相联部分和页表的引用位用于选择替换谁,引用位为1表示最近被使用了,优先不被替换。脏位表示被替换的时候是否写回。

Q:为什么磁盘页要以全相联方式放置在内存中?不使用cache的组相联之类的?
因为磁盘访问开销太大了,我们尽可能不替换它,页表的存在可以使得直接找到磁盘页在内存的位置,因此使用全相联尽量保证替换的次数最少,放置再次访问磁盘。

2、流水线数据冒险以及解决方式

(1)数据冒险:
当一条指令依赖于前一条指令的执行结果,但前一条指令的结果尚未计算完成时,后续指令已经开始执行。这种情况下,后续指令无法获取正确的数据,可能导致错误的执行结果。

简单来说就是,后面的指令需要用到前面指令写的数据,但前面指令还没写时,导致后面指令使用了旧值,导致错误。

(黑书定义:因无法提供指令执行所需数据而导致指令不能在预定的时钟周期内执行的情况。)

(2)解决方式

  • 使用旁路无法解决取数-使用型数据冒险,包括lw-lw和lw-add等。原因是存储器取数的前一阶段就是ALU计算。lw在取数时下一条指令就可以计算了。)
  • 插入气泡(空指令),插入无关数据指令

(3)解决控制冒险的方法:
假定分支不发生:假定不会发生跳转,正常顺序执行

缩短分支的延迟:将beq指令的判断提前到ID阶段

动态分支预测

二、数据结构

1、分布式场景下,十个计算节点的大规模排序问题

将数据均分成十组内部进行排序之后,使用多路归并排序

这里是多路归并排序问题:使可以用分治归并 或 使用优先队列合并

可以参考力扣题目:23. 合并 K 个升序链表
个人题解:23. 合并 K 个升序链表

2、红黑树和B树

BST、AVL、红黑树、B树都是用来查找的树形结构,他们都有增删改查的操作。但是它们使用的场景不一样,面试时主要是问红黑树和B树。

这些查找都是树形查找,由于对数底对时间复杂度不影响,所以这些树查找的平均时间复杂度都是O(logn),但为什么我们使用场景不一样呢?

我们需要进行磁盘中信息的索引时,比如数据库索引(比如主键索引)和文件索引,我们需要快速且访问磁盘次数尽可能少的算法,因为磁盘的I/O时间长,导致计算机性能瓶颈。

  • 文件存储在磁盘上,I/O操作的时间成为瓶颈
  • 使用哈希表一定存在冲突,散列不均匀变成线性查询,这不是我们想要的
  • 使用二叉树查找,结点数量越多,树的深度越深,访问磁盘次数越多。AVL/红黑树等虽然可以实现O(logn)查询但是查询次数也很多。红黑树和AVL树都会随着数据的插入、发现树的深度会变深,意味着I/O次数越多,影响读取的效率。但这里我们引入多叉树却有更好的效果!!

B树,多叉树,我们可以在一个结点中存储更多的儿子信息,也就是索引信息。相当于我一次磁盘检索就可以找到更多的索引信息,比二叉树两个信息更多!虽然时间复杂度跟底数没关系,但是在磁盘访问上,可以看出有很大的区别。我们可以一个可以存多个儿子的位置,实现多路查询!因为这样的话我们访问了一个结点就能有更多的磁盘信息,访问磁盘次数比二叉树查找少得多!

那红黑树又比AVL好在哪儿呢?嗯?

  • 在普通的内存查询的问题中,红黑树并不需要像AVL一样插入时花费很多时间来时刻保持平衡,而只需要保证左右子树的高度不大于2倍关系即可。这样没有牺牲插入时间,性能也很好。在C++STL的map和set中都使用到了红黑树(也支持顺序遍历)。在内存中查找的数据库系统等也有用到红黑树的。

B树的使用场景、优点、能够维护什么样的操作等

(1)使用场景
B树是一种自平衡的树数据结构
主要用于存储系统中的索引和数据库管理系统中。

(2)优点
效率高,高效的查找性能

优化磁盘I/O,更多的信息

动态扩展

(3)能够维护什么样的操作
增删改查,顺序遍历

红黑树的使用场景、优点、能够维护什么样的操作等

(1)使用场景

  1. 关联数组:红黑树可以用来实现标准库中的关联数组数据结构,如 C++ 中的 std::mapstd::set 和 Java 中的 TreeMapTreeSet。这些结构通常使用红黑树来维持元素的有序状态。

  2. 内存管理:某些类型的内存管理算法使用红黑树来维护内存块的各种大小,以便快速分配和释放内存。

  3. 数据库:数据库系统中的索引经常使用红黑树来快速查找记录。

    • 红黑树可能用于一些特定场景的数据库索引,特别是在内存数据库或小型数据库中,其中数据量较小,且数据主要存储在内存中的情况。

B树更适合大数据量的磁盘存储场景,而红黑树可能更适合内存中的数据结构管理。

(2)优点

  1. 自平衡:红黑树通过在树中插入和删除节点时的旋转和重新着色,保持树的平衡,确保最长路径不会超过最短路径的两倍。这意味着树大致上是平衡的。

  2. 效率:操作如插入、删除和查找都可以在 O ( log ⁡ n ) O(\log n) O(logn)时间内完成,其中 n n n 是树中的节点数。这对于动态数据集合(即频繁修改的数据)特别重要。

效率高B树和红黑树都有奥。

(3)能够维护什么样的操作
增删改查,顺序遍历

3、生成树算法的使用场景

(1)prim算法和Kruskal算法分别适合场景?
Prim算法:稠密图,时间复杂度 O ( n 2 ) O(n^2) O(n2),堆优化是 O ( n l o g n + e ) O(nlogn+e) O(nlogn+e)
Kruskal算法:稀疏图,时间复杂度 O ( e l o g e ) O(eloge) O(eloge)

Kruskal是使用边排序和并查集,边排序相当于时间复杂度约束于边的条数,如果有一亿个图顶点,但是是边很少的稀疏图,那么Kruskal会比prim快,所以Kruskal很适合稀疏图,因为点多边少对他有利。

(2)邻接矩阵存图时使用哪种算法
邻接矩阵常存储稠密图,使用Prim算法

第一个是因为邻接矩阵常存储稠密图;
第二个是因为使用Kruskal需要得到边,仍然需要对邻接矩阵进行一次遍历,时间复杂度变成了 O ( n 2 + e l o g e ) O(n^2+eloge) O(n2+eloge),它的优势没了。
而Prim算法的时间复杂度还是 O ( n 2 ) O(n^2) O(n2),因为对于每一个点都得遍历一次它的边来更新它的邻居,邻接矩阵需要 O ( n ) O(n) O(n),而选择最短顶点,每一次最坏也就 O ( n ) O(n) O(n),因此整体时间复杂度是 O ( n 2 ) O(n^2) O(n2),Kruskal还多了 e l o g e eloge eloge,且需要的空间复杂度也更高。

pk,稠稀,p稠k稀

三、离散数学

1、集合论

(1)集合基础
幂集
笛卡尔积
余集/补集: A 的余集 = E − A , E 是全集 A的余集 = E-A,E是全集 A的余集=EA,E是全集
(2)关系:集合A与集合B上的一个二元关系
关系是 A × B A×B A×B的一个子集 R R R,根据幂集的数量可以知道 A A A B B B上一共有 2 a b 2^{ab} 2ab个关系。

(3)A上的二元关系
A = B A=B A=B则,称关系为A上的二元关系。

A上的二元关系的重点种类:

  • 空关系: R = ∅ R=∅ R=
  • 全域关系: R = A × A R=A×A R=A×A
  • 相等关系: I A = { ( x , x ) ∣ x ∈ A } I_{A}= \{(x,x)|x∈A\} IA={(x,x)xA}

for example:

  • A A A是所有人的集合
  • A A A上的一个关系 R R R,表示婚姻关系
  • ( 张三,李四 ) ∈ R (张三,李四)∈R (张三,李四)R表示张三和李四是夫妻。但是序偶是有顺序的。但可以发现这里的夫妻关系并没有顺序关系,因此也有 ( 李四,张三 ) ∈ R (李四,张三)∈R (李四,张三)R,我们说这个集合具有对称性,这就引入了关系的性质。

(4)关系的性质
自反性:
对称性:
反对称性:反对称性,对 ( x , x ) (x,x) (x,x)没有约束
传递性:
反自反性:反自反不包含任何的 ( x , x ) (x,x) (x,x)

(5)等价关系
自反、对称、传递

(6)偏序关系
自反、反对称、传递

(7)1-1映射
满射+单射
A映射到B,B全能被映射到,则称为满射。
A的每一个都映射到一个B且映射到的B都不相同,则称为单射。

(8)集合的基数

  • 阿列夫0:自然数集合
    • 所有能和自然数集合对等的集合基数都是阿列夫0.
    • 自然数集合称为可数集合。
    • 无穷多个可数集合的并集是可数集合
    • 有理数集合是可数集合
  • 实数区间集合
    • 不可数集合
    • 不可数集合的基数不能被证明为阿列夫1,阿列夫1也不能被证明为不可数集合的基数。

2、鸽巢定理

这个原理的基本思想很直观:如果你有更多的物体要放入较少的容器中,那么至少有一个容器会包含多于一个的物体

  • 抽屉原理:如果有十对袜子在抽屉里混合在一起,那么至少抽取11只袜子可以保证至少有一对颜色相同的袜子。
    • 相当于均匀的取到极限,然后再加一个就必然会出现重复。

3、容斥原理

2、判断平面图,K5,K33定理之类的

特征值和特征向量的意义

(1)特征值(Eigenvalue)和特征向量(Eigenvector)

给定一个方阵 A A A(即行数和列数相等的矩阵),如果存在一个非零向量 v \mathbf{v} v和一个标量 λ \lambda λ,使得:

A v = λ v A \mathbf{v} = \lambda \mathbf{v} Av=λv

那么,这个标量 λ \lambda λ 称为矩阵 A A A 的一个特征值,非零向量 v \mathbf{v} v 称为对应于特征值 λ \lambda λ 的特征向量。

(2)意义

  1. 方向保持不变
    特征向量的方向在矩阵 A A A 的变换下保持不变,只是被拉伸或压缩。特征值 λ \lambda λ 描述了这种拉伸或压缩的程度。如果 λ \lambda λ 大于1,向量在变换后被拉伸;如果 λ \lambda λ小于1,向量被压缩;如果 λ \lambda λ为负,向量的方向也会翻转。

  2. 数据降维
    在数据分析中,特征值和特征向量用于确定数据的主要变化方向。在主成分分析(PCA)中,数据集的主成分是数据协方差矩阵的特征向量,而这些主成分的重要性由其对应的特征值的大小决定。

特征向量和特征值的概念源自线性代数中的矩阵理论。对于任何方阵,特征向量和特征值描述了这个矩阵的一些内在特性。理解为什么一个矩阵可以有多个特征向量,需要从线性变换的角度来考虑。

一个方阵可以存在多个特征向量

(3)一个方阵可以有多个特征向量和特征值

具体原因包括:

  1. 特征多项式:特征值是方阵 A A A的特征多项式的根。特征多项式是一个 n n n阶多项式,对于 n × n n \times n n×n 的矩阵,理论上可以有多达 n n n 个根,这些根可以是实数或复数,可以是不同的或重复的。

  2. 特征空间:每个特征值 λ \lambda λ 都对应一个特征空间,该空间由满足 ( A − λ I ) ⋅ v = 0 (A - \lambda I) \cdot v = 0 (AλI)v=0 的所有向量$v¥构成(这里 I I I 是单位矩阵)。特征空间可能包含多个线性独立的特征向量,特别是在特征值是重根的情况下。

  3. 维数:每个特征值的特征空间的维数被称为该特征值的代数重数。如果一个特征值的代数重数大于1,那么它的特征空间中将存在多个线性独立的特征向量。

(4)考虑一个简单的 2 × 2 2 \times 2 2×2 方阵:

A = [ 4 1 0 3 ] A = \begin{bmatrix} 4 & 1 \\ 0 & 3 \end{bmatrix} A=[4013]
对应的特征多项式是 ( 4 − λ ) ( 3 − λ ) = 0 (4 - \lambda)(3 - \lambda) = 0 (4λ)(3λ)=0,解出来的特征值是 λ 1 = 4 \lambda_1 = 4 λ1=4 λ 2 = 3 \lambda_2 = 3 λ2=3。对每个特征值求解 ( A − λ I ) v = 0 (A - \lambda I)v = 0 (AλI)v=0可以得到相应的特征向量。

因此,矩阵 A A A有多个特征向量,它们分别对应于不同的特征值,或者即使是同一个特征值也可能存在多个线性独立的特征向量。这使得矩阵能够描述多维空间中的各种独立变换方向。


你觉得科研成功最重要的因素是什么

钻研的精神,实验的精神,求真的精神,以及知识储备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机操作界面来了,起点就很高呀。

无人机操作界面设计需要考虑以下几个方面: 易用性:无人机操作界面应该简单直观,易于操作和理解。操作按钮和控键应该布局合理,易于触摸或点击。重要的操作功能应该易于找到和使用,避免用户迷失或困惑。实时反馈&#…

红蓝对抗提权篇之一文看懂提权

一、计算机中的权限 1.1 不同的权限系统 权限在不同的应用中有着不同的分类,与安全相关的大致上我们分为: 匿名访问权限 来宾权限 用户权限 管理员权限 系统权限 不同的权限对应的权力各不相同,我们对自己电脑一般是用户权限和管理员权限。…

【AI赋能】香橙派OrangePi AIpro初体验

【AI赋能】香橙派OrangePi AIpro初体验 1、初识香橙派1.1、仪式感开箱1.2、OrangePi AIpro(8T)介绍 2、上电开机2.1、开机2.2、串口调试2.2.1 两种方式登录2.2.2 相关信息 2.3、启动系统2.4、网络配置 3、连接摄像头4、目标检测4.1、Jupyter Lab模式4.2、 目标检测测试4.2.1 视…

06 FreeRTOS 互斥量(mutex)

1、互斥量的使用场景 用于保护临界资源,在多任务系统中,任务A正在使用某个资源,还没用完的情况下任务B也来使用的话,就可能导致问题。 比如对于串口,任务A正使用它来打印,在打印过程中任务B也来打印&#x…

Cobaltstrike渗透测试框架

Cobaltstrike简介 cobalt strike(简称CS)是一款团队作战渗透测试神器,分为客户端及服务端,一个服务端可以对应多个客户 端,一个客户端可以连接多个服务端,可被团队进行分布式协团操作. 和MSF关系 metas…

使用screw-core生成数据库结构说明文档

官方项目地址: screw: 简洁好用的数据库表结构文档工具,支持MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB 数据库。 数据库支持 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB(2016) H2 (开发…

文心智能体平台 | 想象即现实

目录 文心智能体平台介绍平台简介通过平台能做什么平台的优势智能体介绍智能体类型AI 插件介绍 动手创建一个智能体访问平台并进行账号注册根据适合的方式选择智能体类型快速创建智能体智能体个性化模块配置 总结注意事项我的智能体 文心智能体平台介绍 平台简介 文心智能体平…

产品推荐 | 基于Xilinx Zynq-7015 FPGA的MYC-C7Z015开发板

一、产品概述 基于 Xilinx Zynq-7015,双Cortex-A9FPGA全可编程处理器;PS部分(ARM)与PL部分(FPGA)之间采用AXI高速片上总线通信,吉比特级带宽,突破传统ARMFPGA架构的通信瓶颈,通过PL部分(FPGA)灵活配置丰富的外设接口&…

若依框架官网

RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0…

LLM - 模型下载与 git-lfs 安装

目录 一.引言 二.安装 git lfs 1.使用 apt-get 安装 2.使用 Brew 安装 3.LFS 验证 三.总结 一.引言 在 HuggingFace 上下载模型时提供一个 git clone 的指令,执行后可以下载对应模型的模型文件: 但是本机还没有 git lfs 命令: git: lfs is not a git comman…

Google使用AI改进了 Sheets;开源视觉语言模型llama3v;开源情绪语音模型ChatTTS;

✨ 1: Google has improved Sheets with AI. Google 使用 AI 改进了 Sheets 您可以使用 Gemini 处理您的数据并将其变成老师。 优化您的数据 Gemini 了解您的数据并提出改进建议。 例如,它可以将重复数据转换为更实用的下拉框。 解释数据 通过单击双子座图标…

Windows下PostgreSQL数据库的备份与恢复

文章目录 一、备份1.找到PostgreSQL的安装目录下的"bin"目录2.在windows的命令窗口里,使用pg_dump进行备份1.打开命令窗口2.使用pg_dump将数据库备份下来 二、恢复1.找到PostgreSQL的安装目录下的"bin"目录2.在windows的命令窗口里,…

全新PSAI设计插件 —— StartAI,让想象触手可及!

告别繁琐的设计过程,StartAI将为你的创作注入新动力,让每一个设计瞬间变得生动而独特。 核心功能介绍: 高清修复 - 每一个设计细节都至关重要,StartAI的高清修复可以细节优化,确保你的设计完美无瑕。 百变生图风格- 从…

【信息学奥赛】两个整型变量的值交换

【信息学奥赛】两个整型变量的值交换 💖The Begin💖点点关注,收藏不迷路💖 编写如下一个函数,用于将两个整型变量的值交换 输入: 两个数 输出: 交换后的两个数 样例输入: 3 2样…

PyTorch自定义张量操作开发指南【CFFI+CUDA】

PyTorch 与 TensorFlow 一起成为深度学习研究人员和从业者的标准。虽然 PyTorch 在张量运算或深度学习层方面提供了多种选择,但一些专门的操作仍然需要手动实现。在运行时至关重要的情况下,应使用 C 或 CUDA 来完成此操作,以支持 CPU 和 GPU …

linux系统——htop命令检测

在之前提到top命令可以检测进程情况,但需要额外一些参数才能更清晰得到一些数据,htop也是进程监测命令,但更为准确,给出信息更为详实

H2RSVLM:引领遥感视觉语言模型的革命

随着人工智能技术的飞速发展,遥感图像理解在环境监测、气候变化、粮食安全和灾害预警等多个领域扮演着越来越重要的角色。然而,现有的通用视觉语言模型(VLMs)在处理遥感图像时仍面临挑战,主要因为遥感图像的独特性和当…

stream-实践应用-统计分析

背景 业务部门提供了一个数据,数据甚至不是excel类型的,是data.txt,每一行都是一个数据,需要对此数据进行统计分析 统计各个月份的销量 因为直接获取resources下的data.txt,所以要借助输入流进行获取数据,再…

【手把手带你微调 Llama3】 改变大模型的自我认知,单卡就能训

微调Llama3的自我认知后 当你问Llama3中文问题: “你叫什么名字?”、 “做个自我介绍”、 “你好” Llama3 会用中文回答 : “我是AI在手” (如下图) 1、环境安装 # nvidia 显卡 显存16G# pytorch 2.2.2 …

【Java】【python】leetcode刷题记录--双指针

双指针也一般称为快慢指针,主要用于处理链表和数组等线性数据结构。这种技巧主要涉及到两个指针,一个快指针(通常每次移动两步)和一个慢指针(通常每次移动一步)。快指针可以起到’探路‘的作用,…