- 博客(440)
- 收藏
- 关注
原创 力扣经典算法篇-45-回文数(数字处理:求余+整除,字符串处理:左右指针)
本文介绍了判断整数是否为回文数的三种方法:1) 使用字符串反转直接比较;2) 将数字转为字符串后采用左右指针法比较;3) 通过数学运算(求余和整除)反转数字进行比较。其中方法一简单但效率较低,方法二和方法三效率更高,尤其方法三完全基于数字运算,适合算法考察。所有方法都排除了负数和非零的10的倍数这些明显非回文的情况。
2025-08-06 23:37:59
93
原创 力扣经典算法篇-44-组合总和(回溯问题)
本文介绍了使用回溯算法解决组合总和问题。给定一个无重复元素的整数数组和目标值,找出所有和为目标的数字组合,允许数字重复使用。提供了两种回溯方法:方法一通过全排列后去重,但效率较低;方法二通过指定遍历起始位置,避免重复计算,提高效率。两种方法都遵循回溯框架:添加元素、递归、回溯删除元素。关键区别在于如何避免重复组合,方法二通过限制起始位置更高效。文章包含Java代码示例,适合解决类似组合问题的回溯算法实现参考。
2025-08-06 22:24:48
310
原创 力扣经典算法篇-43-全排列(经典回溯问题)
注意本例要求的元素不能有重复,所以临时动态变量,除了要添加元素的下标,本趟的结果集,还要添加一个set集合用于验证是否重复添加元素。所以在循环递归前,不仅要添加当前元素,还要添加记录下标;在回溯的时候添加的什么,就要删除什么。怎么添加的元素进行向后递归,就要怎么删除元素进行回溯。输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。找到固定不变的量,每趟递归动态变化的量,结果集。
2025-08-05 23:46:06
408
原创 Prometheus-4--Prometheus采集的常见指标
通过Micrometer注册自定义指标。@Service// 每次调用时增加计数器通过拦截器记录接口调用次数(业务处理这个指标):@Component@Override// 每次请求时增加计数器Prometheus默认指标覆盖了系统资源、JVM、HTTP请求、线程池、数据库连接池等核心监控维度。通过Micrometer或Exporter暴露指标,Prometheus Server以Pull模型定期拉取数据并存储为时间序列。
2025-08-05 01:10:51
602
原创 Mysql-场景篇-2-线上高频访问的Mysql表,如何在线修改表结构影响最小?-5--INSTANT DDL,gh-ost,pt-osc三种在线DDL方案对比分析
仅支持InnoDB存储引擎。不支持修改主键、索引结构、外键约束。修改列类型必须通过重建表实现(如gh-ost或pt-osc)。优先使用INSTANT DDL:对于支持的操作(如添加/删除列),原生方案性能最优。复杂DDL操作:选择gh-ost(高并发场景)或pt-osc(低并发场景)。始终测试与备份:任何DDL操作前需在测试环境验证,并保留旧表或数据备份。向阳前行,Dare To Be!!!
2025-08-04 23:50:11
836
1
原创 Prometheus-3--Prometheus是怎么抓取Java应用,Redis中间件,服务器环境的指标的?
摘要: 本文介绍了如何通过Prometheus监控Java应用、Redis中间件和服务器运行环境的指标数据。对于Java应用,需要引入Prometheus客户端库并在代码中定义指标,通过HTTP暴露/metrics接口;对于Redis等中间件,需部署对应的Exporter组件(如redis_exporter)转换指标格式;服务器环境指标则通过node_exporter采集。三种场景均需在Prometheus配置文件中添加对应的抓取任务。实现步骤包括:1)引入依赖或部署Exporter,2)验证指标暴露,3)
2025-08-04 23:37:37
1099
原创 力扣经典算法篇-42-矩阵置零(辅助数组标记法,使用两个标记变量)
想一下,如果在遍历时就将后面行的元素修改成了0,那么之后行的遍历时,就会将改行全部变为0,进而导致整个列也全部都变成0,最终形成全0的局面。将第0行和第0列作为辅助空间,先标记在修改元素。但第0行和第0列的元素不能根据被修改后的值进行修改,所以还要添加两个变量先记录第0行和第0列是否包含0的存在。输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]输出:[[1,0,1],[0,0,0],[1,0,1]]
2025-08-03 18:14:45
278
原创 力扣经典算法篇-41-旋转图像(辅助数组法,原地旋转法)
输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]假设n=4,规律:3,0–>0,0 2,0–>0,1 1,0–>0,2 0,0–>0,3。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]需要结合当n=3和n=4的简单场景下,自己找规律,不能懒。输出:[[7,4,1],[8,5,2],[9,6,3]]
2025-08-03 16:56:51
361
原创 力扣经典算法篇-40-螺旋矩阵(方向遍历:方向数组+已访问元素集合)
第三,方向的控制需要借助一个固定的二维数组{0, 1}, {1, 0}, {0, -1}, {-1, 0}代表右,下,左,上的四个方向。思路:遍历数组,沿着一个方向添加数据,当达到切换方向条件时,切换方向添加数据,直到最终达到最大次数。输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]输出:[1,2,3,6,9,8,7,4,5]
2025-08-03 14:07:52
422
原创 力扣经典算法篇-39-有效的数独(二维数组和三维数组的应用)
其实不难发现,对于下标为[i][j]的元素,其[i/3][j/3]如果值相同,那么这些元素就处于同一个宫格之中;因为比较的规则有3种,行比较,列比较,宫格比较,所以我建议使用三个临时数组来保存已有的特征数据,这样可以在一次遍历中去校验三个维度的规则是否满足。即:行上不能存在重复的元素,列上能存在重复的元素,每个宫格上不能存在重复的元素。如果要比较目标元素是否符合要求,很显然要有一个对应的参考物记录下已有数据的特征,通过元素和参考物的比较才能知道当前元素是否满足要求。请你判断一个9 x 9的数独是否有效。
2025-08-03 11:12:36
619
原创 Docker--将非root用户添加docker用户组,解决频繁sudo执行输入密码的问题
本文介绍了Docker用户组的作用及其权限管理机制。由于Linux设备访问权限控制,只有root或docker组成员才能访问/var/run/docker.sock文件进行Docker操作。文章详细说明了如何验证docker组是否存在、将当前用户加入docker组的方法(使用usermod命令),并强调该操作等同于获得root权限,存在安全风险,建议生产环境采用更细粒度的权限控制。加入docker组后用户即可直接执行docker命令而无需sudo。
2025-08-02 16:19:26
372
原创 Java WEB技术-序列化和反序列化认识(SpringBoot的Jackson序列化行为?如何打破序列化过程的驼峰规则?如何解决学序列化循环引用问题?)
在java项目中,对象序列化和反序列化通常用于对象的存储或网络传输等。如:服务端创建一个JSON对象,对象如何在网络中进行传输呢?我们知道网络传输的数据通常都是字节流的形式,对象想要在网络上传输,不例外,也必须要转化成字节流才行。将对象转换为字节流的过程就是对象的序列化过程,转化后的字节数据就可以在网络中进行传输了;接收端接收到这些字节数据后将其还原为原始对象的过程,也就是反序列化。通过序列化和反序列化的方式,即可以实现对象在不通节点之间进行网络传输了。
2025-07-31 22:35:26
1736
1
原创 力扣经典算法篇-38-组合(回溯算法)
递归的终止条件(一般是临时变量符合要求),添加结果集;非终止的情况下循环处理,先添加元素向后发起,之后在删除元素向前回溯。这是一道类似全排列的问题,给定范围,给出要求,求出可能得所有组合,可以使用回溯算法求解。给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。明确不变的量,明确本趟组装的临时变量,明确结果集合。向阳前行,Dare To Be!你可以按 任何顺序 返回答案。输入:n = 4, k = 2。输入:n = 1, k = 1。套用上面的公式,代码示例如下。
2025-07-31 00:11:51
305
原创 Prometheus-2--什么是Exporter是什么?
开发者可以通过Prometheus官方提供的客户端库(如prometheus/client_golang)创建自定义Exporter。(1)、定义指标(如http_requests_total)。(2)、实现数据采集逻辑(如调用HTTP接口获取响应时间)。(3)、注册指标并启动HTTP服务。
2025-07-30 22:25:43
571
原创 力扣经典算法篇-37-电话号码的字母组合(经典全排列问题--回溯算法)
非终止的情况下循环处理,先添加元素向后发起,之后在删除元素向前回溯。输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。digits[i] 是范围 [‘2’, ‘9’] 的一个数字。明确不变的量,明确本趟组装的临时变量,明确结果集合。这是一道经典的全排列的问题,通常使用回溯算法计算所有的可能。向阳前行,Dare To Be!输出:[“a”,“b”,“c”]套用上面的公式,代码示例如下。
2025-07-30 00:48:07
468
原创 力扣经典算法篇-36-同构字符串(哈希表)
根据题意,一个key对应一个不重复的value。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。输入:s = “paper”, t = “title”给定两个字符串 s 和 t ,判断它们是否是同构的。输入:s = “egg”, t = “add”输入:s = “foo”, t = “bar”向阳前行,Dare To Be!
2025-07-29 23:12:40
277
原创 Prometheus-1--什么是Prometheus?
类似Histogram,但更适用于精确的分位数计算。如:上传大小、下载速度。示例:http_request_latency_seconds(分位数统计)。未指定类型的指标,用于兼容旧系统,也可以由用户自定义指标。Prometheus是一个强大的开源监控系统,采用Pull模式采集指标,支持多维数据模型和灵活查询语言PromQL,适用于云原生和微服务架构,通过丰富的Exporter和生态工具,能够构建完整的监控、告警和可视化体系。向阳前行,Dare To Be!!!
2025-07-29 22:54:24
1500
原创 力扣经典算法篇-35-翻转二叉树(深度优先遍历,广度优先遍历)
这里的临时队列能存储遍历到的节点,然后依次取出进行左右孩子交换,不会造成一个元素被多次交换的情况。递归处理,直到遍历到根节点时进行左右孩子的交换。给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。这是一种自顶向下处理的思路,相对递归从下向上的思路而言更好理解。输入:root = [4,2,7,1,3,6,9]树中节点数目范围在 [0, 100] 内。输出:[4,7,2,9,6,3,1]向阳前行,Dare To Be!输入:root = [2,1,3]输出:[2,3,1]
2025-07-28 09:07:54
274
原创 力扣经典算法篇-34-相同的树(深度优先遍历,广度优先遍历)
当队列不为空的时候依次取出头部的元素进行比较,直到最终不存在元素为止。广度有点遍历要从根节点开始,依次寻找与其相邻的节点作为下一趟比较的节点,直到最终没有需要遍历的节点为止。注意之后元素的添加逻辑要一致,先left后right,且都存在才能添加,否则就不添加或直接结束。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。输入:p = [1,2], q = [1,null,2]输入:p = [1,2,3], q = [1,2,3]输入:p = [1,2,1], q = [1,1,2]
2025-07-26 16:12:33
254
原创 力扣经典算法篇-33-二叉树的最大深度(深度优先遍历,广度优先遍历)
每一趟广度优先遍历时,需要先从临时列表中取出要遍历的元素,进行业务处理,同时还要加入下一趟需要广度遍历的新元素。深度优先遍历思路是沿着一条方向一直遍历走到头,直到没有能新访问的元素时,在回头向其他方向进行遍历,直到最终访问到所有的元素,通常使用递归进行处理。广度优先遍历思路是以根节点为中心,每次找到与其相邻的所有节点作为下一趟广度遍历的起始元素,直到最终没有下一趟元素为止。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。输入:root = [3,9,20,null,null,15,7]
2025-07-26 15:02:55
207
原创 Mysql-场景篇-2-线上高频访问的Mysql表,如何在线修改表结构影响最小?-4--Percona Toolkit工具pt-online-schema-change的DDL方案原理
pt-online-schema-change是处理高频写入、大表结构变更的利器,尤其适用于MySQL 5.5-5.7等不支持秒级DDL的版本。其核心优势在于零锁表、数据一致性保障,但需注意触发器依赖、磁盘空间和外键处理等限制。在MySQL 8.0中,若仅需添加字段,可优先使用原生的秒级DDL操作。但实际项目中为了减轻主库的负担,建议选择GitHub的gh-ost进行在线DDL处理。pt-online-schema-change这种实现逻辑也可以作为扩展我们思路的一种方式。
2025-07-25 13:54:36
763
原创 力扣经典算法篇-32-爬楼梯(一维动态规划)
动态规划最重要的就是找到递推公式,递推公式有时候能结合题意找出,但有时候不容易理解得到,就只能结合已知元素的值去找规律。如本题就不容易理解,所以只能结合前面的元素找规律。这道题的目的是为了找出在有限条件下的最优值,即最优解的问题。结合前面元素的结果:{1,2,3,5,8…},可以得到公式为f(x) = f(x-1)+f(x-2);找到公式后,就可以结合动态规划解题步骤套入即可,见下代码。需要 n 阶你才能到达楼顶。向阳前行,Dare To Be!解释:有两种方法可以爬到楼顶。解释:有三种方法可以爬到楼顶。
2025-07-25 00:28:22
147
原创 Mysql-场景篇-2-线上高频访问的Mysql表,如何在线修改表结构影响最小?-3--GitHub的gh-ost的DDL解决方案和原理(次推荐,INSTANT DDL无效时适用)
gh-ost通过无触发器设计和异步binlog同步,将DDL操作对主库的影响降到最低。核心在于:1、解耦主库负载:binlog同步由独立线程处理,不占用主库事务资源。2、原子切换:通过RENAME TABLE保证切换过程的原子性和一致性。3、灵活控制:支持暂停、限速、测试,适应复杂生产环境需求。这种设计使得gh-ost成为MySQL在线DDL的首选工具,尤其适用于大数据量和高可用性要求的场景。MySQL的二进制日志(binlog)记录了数据库的所有更改操作,以便于数据恢复、复制等用途。
2025-07-24 16:43:40
788
原创 力扣经典算法篇-31-有效的括号(栈)
对于本题这种成对出现的括号的字符串,可以使用栈的特性进行处理。注意pop(弹出栈顶元素)和peek(查看不弹出站定元素)。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。每个右括号都有一个对应的相同类型的左括号。s 仅由括号 ‘()[]{}’ 组成。向阳前行,Dare To Be!左括号必须用相同类型的右括号闭合。输入:s = “()[]{}”输入:s = “([])”输入:s = “([)]”输入:s = “()”输入:s = “(]”
2025-07-24 00:28:11
250
原创 Mysql-场景篇-2-线上高频访问的Mysql表,如何在线修改表结构影响最小?-2--Mysql8.0的INSTANT DDL实现原理
MySQL 8.0的INSTANT DDL通过仅修改元数据和动态解析历史数据,解决了传统DDL的锁表和性能问题。其核心在于:1、元数据版本管理:兼容不同版本的表结构。2、默认值填充:保障新增列的数据完整性。3、列隐藏与物理位置:逻辑删除列而非物理删除。这种设计使得DDL操作几乎不阻塞业务,且资源消耗极低,特别适合高频写入和大数据量场景。然而,其功能受限于操作类型和存储引擎,需根据实际需求选择是否使用。
2025-07-23 11:03:19
1148
原创 力扣经典算法篇-30-两数之和(暴力求解法,哈希统计法)
既然已经给了target,当我们遍历数组的时候,只需要校验target-当前元素的差值是否存在即可。给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。向阳前行,Dare To Be!空间复杂度:O(1)
2025-07-23 00:56:35
196
原创 Mysql-场景篇-2-线上高频访问的Mysql表,如何在线修改表结构影响最小?-1--Mysql8.0版本后的INSTANT DDL方案(推荐)
INSTANT DDL的核心价值:通过元数据管理和默认值填充机制,实现毫秒级表结构变更,且几乎不影响业务。适用性:适用于需要频繁修改表结构、数据量大、对锁表时间敏感的场景。注意事项:仅支持部分DDL操作(如ADD COLUMN、DROP COLUMN)。需确保MySQL版本>= 8.0.12(或8.0.29以支持DROP COLUMN)。不支持修改主键、外键或添加全文索引。
2025-07-22 17:04:18
1438
原创 力扣经典算法篇-29-汇总区间(一次遍历法)
也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个区间但不属于 nums 的数字 x。一次遍历法需要变量整个数组,在过程中,选择符合题意的起始元素,内层向后遍历,实际上也在加速外层循环的遍历。区间 [a,b] 是从 a 到 b(包含)的所有整数的集合。输出:[“0”,“2->4”,“6”,“8->9”]输入:nums = [0,2,3,4,6,8,9]输入:nums = [0,1,2,4,5,7]输出:[“0->2”,“4->5”,“7”]向阳出发,Dare To Be!
2025-07-22 00:43:07
250
原创 力扣经典算法篇-28-无重复字符的最长子串(左右指针 + Hash统计)
如果返回true,即添加成功,说明不存在,处理右指针向后偏移,并统计本次是否是最优的连续片段。因为Hash结构在统计元素是否存在时,通过哈希函数找到元素的槽位,时间效率是O(1),相对于数组的遍历O(N),大大提高了效率。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
2025-07-21 23:24:54
464
原创 力扣经典算法篇-27-赎金信(数组统计法,Hash统计法)
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。使用2个数组分别统计每个元素出现的次数,通过遍历和比较每个元素出现的次数来校验是否存在包含关系。输入:ransomNote = “aa”, magazine = “aab”输入:ransomNote = “aa”, magazine = “ab”输入:ransomNote = “a”, magazine = “b”使用Hash结构包含元素出现的次数,类似与方法二的实现原理。
2025-07-21 15:08:38
225
原创 Redis--场景篇1--如何实现排行榜分数相同时,根据实现先后顺序排序?(Zset结合时间戳的分数处理(转整数处理,转小数处理))
zset根据分数对成员进行排序,分数相同的情况下,成员按照插入顺序排列(注意:字典顺序仅在使用整数分数且没有时间戳等附加信息时适用)。因此,可以说zset是一个特殊的集合,其中的元素不仅有唯一性(成员),还有顺序性(通过分数实现)。在实现排行榜功能时,若希望分数相同时按照实现(插入)的先后顺序排序,可以采用以下方案,核心思想是 将时间信息编码进分数中,以确保相同分数下,先插入的记录排在前面。将原始分数与时间戳结合,生成一个复合分数,确保相同分数下,时间戳更早的记录排在前面。向阳出发,Dare To Be!
2025-07-20 00:27:39
1535
原创 力扣经典算法篇-26-长度最小的子数组(暴力求解法,左右指针法)
当小于目标值时,右指针持续右移直到大于目标,记录此时的和左指针的间隔。, numsr-1, numsr],并返回其长度。如果你已经实现O(n)时间复杂度的解法, 请尝试设计一个O(n log(n))时间复杂度的解法。实际为2n,但是在算时间复杂度时,常熟可以去掉,所以是O(n)。输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]输入:target = 4, nums = [1,4,4]空间复杂度:O(1)。
2025-07-19 22:33:34
437
原创 力扣经典算法篇-25-删除链表的倒数第 N 个结点(计算链表的长度,利用栈先进后出特性,双指针法)
/ 链表节点int val;val = x;链表构建过程示例:(如上示例1)= null) {
2025-07-19 16:54:26
338
原创 力扣经典算法篇-24-合并两个有序链表(迭代遍历,递归)
/ 链表节点int val;val = x;链表构建过程示例:(如上示例1)// 构建链表1// 构建链表2// 调用合并方法// 遍历打印= null) {
2025-07-15 20:05:41
363
原创 力扣经典算法篇-23-环形链表(哈希映射法,快慢指针法)
int val;// 节点的值// 下一个节点val = x;构建链表的方式示例:(如上示例1,[3,2,0,-4]的链表构建过程)// 创建节点// 3// 2// 0// -4// 构建链表顺序和环// 环:-4 → 2。
2025-07-14 09:18:01
498
原创 力扣经典算法篇-22-三数之和(固定一端+双指针法)
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]向阳出发,Dare To Be!输入:nums = [0,1,1]输入:nums = [0,0,0]输出:[[0,0,0]]
2025-07-14 09:17:21
482
原创 力扣经典算法篇-21- 两数之和 II - 输入有序数组(固定一端 + 二分查找法,双指针法)
如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length。我们可以采取固定一端的思路,如:第一个元素固定,在剩余的元素中通过二分查找,快速找到与第一个元素相加刚好等于目标值的第二个元素。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。因此 index1 = 1, index2 = 2。返回 [1, 2]。
2025-07-13 14:09:42
368
原创 力扣经典算法篇-20-盛最多水的容器(双指针法)
1、题干给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。输入:height = [1,1]输出:1。
2025-07-13 13:29:50
223
原创 力扣经典算法篇-19-判断子序列(双指针法,双指针递归法,批量校验时的进阶解法(预处理+二分查找))
如果不相等,s不变,t移除首元素,取各自剩余的部分继续上诉递归处理;之后逐个比较s串,分别校验s的每一个字符是否存在t中的对应的列表;当然即使存在了,也要进一步校验是否满足,譬如上一个元素已经对应t的位置3了,下一个元素匹配的位置确是2,这肯定也不行。最终查看s的指针有没有滑动到最后的位置,到了最后,说明s已经被全包含了。分别比较两个指针位置的元素值是否相等,如果相等两个指针同时右移,如果不相等仅t的指针右移即可。使用两个指针,第一个指针指向字符串s的其实位置,第二个指针指向t的起始位置。
2025-07-13 11:35:20
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人