- 博客(863)
- 资源 (4)
- 收藏
- 关注
原创 142. 环形链表 II
慢指针被追上的时候,他走的步数 = 从起点到入口的距离 + 在圈里多走的那一段。这意味着从相遇点出发,正好还差“起点到入口的那段路”才能到入口。的进阶,141最后快慢指针相遇的时候只能代表是在环内某个节点相遇,并不能代表那就是入口,所以我们需要在确定有环以后再找一次入口。把慢指针送回起点,快指针留在相遇点。两个指针都改成“一次走一步”,因为他们距离入口的路程一样多,所以一定会在。question] 为什么从头再来能找到入口?有环时,把其中一个指针(通常是。)移回头结点,另一个指针(,再次相遇的节点,就是。
2025-09-08 20:45:30
362
原创 73. 矩阵置零
这样第二次扫描时,只要看这一行/列的“表头”(第 0 列/第 0 行)是不是 0,就知道该把元素置零。简单思路我们可以用两个集合记录哪一行、列需要清零,但是这样的空间复杂度是。当你在扫描到某个位置。
2025-09-04 20:42:55
591
原创 41. 缺失的第一个正数
只有在「当前数值在有效范围 1…n 且不在自己该在的位置」时才交换。因为求的是缺失的最小的正整数,所以我们只要关心到。这样反复交换,最后所有合法的数都会“归位”。question] 为什么只关心1到n。,如果一直交换不到正确数字会死循环吗?之间,那它应该待在位置。,不会比 n+1 更大。
2025-09-03 21:05:00
294
原创 238. 除自身以外数组的乘积
前缀积 = 当前元素左边所有元素的乘积。保存“右边所有数的乘积”。(右边没有数时乘积为 1)。从右往左扫描,用一个变量。核心思路是找到一个数,
2025-09-02 21:00:06
327
原创 982. 按位与为零的三元组
然后再遍历数组,用第三个数去与前两个数的结果,如果等于0,则满足条件。的结果也是0,那么也会放到map,这个时候map中有个元素就是。首先用简单的思路切入,map来存储数组中每两个数组进行。当第三轮遍历的时候,取nums中的数字去与另外两个数的。随机选择两个数,记录两个数的与结果。的结果,然后遍历数组用数组中的每一个数和另外两个数。运算,发现结果为0,但是整个数组中 另外两个数的。结果 为0,的数字有2对,所以结果应该是。的结果为0,会被放到map,那么。操作后结果为0的个数…后结果为0的,有两对元素。
2024-09-27 15:33:42
639
1
原创 768. 最多能完成排序的块 II
简单来说,给你一个数组,将它拆分成尽可能多的块儿,每个块儿进行升序后进行连接,最后形成的数组要合原本给你的数组直接进行升序后的结果一样。head,我们可以遍历一遍数组 arr ,动态判断到目前数字 num 为止最多能分出多少排序块,最后看看stack中保存了几个排序块的最大值就是答案了。这题理解起来比较绕,这里先简化一下题目。和源数组直接进行ASC后的结果一致。也拆开了,拆开了的话进行ASC得到。:不是说拆的越多越好,比如不能把。拆开后的块儿进行ASC–>可以把它分成两块,例如。可以得到最多的块数。
2024-09-26 20:35:21
618
原创 906. 超级回文数
上进行插入来得到新回文,处理代码会尝试在当前偶数长度的回文数中间插入一个或两个数字,生成更长的回文数。这样做的目的是生成可能符合条件的下一个更长的回文数,并且保持回文数的对称性。如果当前回文数的长度是偶数,继续通过在中间插入一个或两个字符(从’0’到’9’)来生成新的、更长的回文数,并将它们加入队列。因为回文范围是有限的,那么我们可以先初始化基础情况,也就是枚举出单个数字,和两位数字的回文。题目意思很简单,在给定范围中找到所有满足,它本身是回文,且它的平方也是回文的数字个数。,远远超出题目要求的范围。
2024-09-24 21:26:57
1108
原创 1542. 找出最长的超赞子字符串
2-只有一个数字出现奇数次,其余数字出现偶数次,这个情况就需要在内部再来一次for循环去判断了,内部循环的目的是检查通过切换单个数字的奇偶性是否可以找到一个更长的超赞子字符串。因为只关心一个字符出现的次数是奇是偶,因此不需要真正的计数,可用1表示该数字出现了奇数次,0 表示该数字出现了偶数次,然后数字范围为。然后在满足条件的情况下计算超赞字串的长度,以上面的例子为例,长度即为当前status的位置-第一次出现相同status的位置,即。,我们用一个长度为 10 的二进制数来表示状态,每一位对应数字。
2024-09-22 20:59:42
1054
原创 1734. 解码异或后的排列
经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1]。首先题目说的perm它是前 n 个正整数的排列,且是奇数,那么我们求它的所有值的异或,就遍历1到N进行异或就行。相差的就是不知道perm中的第一个数字,那我们只需要求出perm中的第一个数,剩下的就好办了。首先看循环截止,它是遍历了encode的所有值,而且i是从1开始的。的思路,其实就是知道perm中的两个数,就能异或出encode中对应的数。
2024-09-19 20:22:47
965
原创 1035. 不相交的线
因为DP的含义是前N个数,所以前0个数相当于没有啥用,所以要获取到最后题目要求的结果那就是要。还是根据DP数组的含义,需要到达m和n,所以for循环需要能够等于数组长度。题目一看是求最值,那就可以考虑用DP来做。NOTE] 1、DP数组的大小。NOTE] 2、for循环边界。,所以初始化大小要初始化为。
2024-09-18 11:46:21
392
原创 321. 拼接最大数
2、从两个数组组成对应的子序列,使用单调栈思想(遍历数组,如果当前数字比已选择的最后一个数字大,并且还可以替换元素,则删除已选的元素并选取当前更大的元素。选取两个元素,选取出来后必须保持顺序,比如选4和2,那么组成新数组这两个元素的顺序必须还是4在2前面),元素总长度不超过K,组成一个最大的数组。它的核心逻辑就是看当前选择的元素是不是比现在的元素小,如果比现在的元素小而且还有可替换的元素,那么用当前元素替换已选择元素。个元素后,尚未选中的元素数量,它们可以被用来替换当前已选中的元素,达到优化结果的目的。
2024-09-15 21:49:24
1129
原创 PTA.7-6 数字拆分求和
这题目有两种思路:1. 利用等差数列公式 2. 暴力法公式记不住,所以讲下暴力法(PTA对时间空间复杂度要求很低,LeetCode行不通的,还是要背公式)暴力法很简单,就是穷举所有可能性。具体步骤是:首先假设序列的首项为 a1,然后依次构造出符合条件的序列。对每个序列,依次加上差值 1、2、3、…,直到总和等于 k 或超出 k。如果找到符合条件的序列,打印出来。
2024-09-06 11:05:16
415
原创 MySQL深度分页
深度分页问题的本质是在 MySQL 数据库中,通过 LIMIT 和 OFFSET 关键字进行分页时,MySQL 需要在每次查询时扫描整张表,直到找到当前页的数据。这种查询方式需要进行大量的磁盘 I/O 和内存操作,导致查询效率非常低下。当我们每次查询的记录数很小,但是查询次数很多时,就会产生大量的 I/O 操作,严重影响查询效率。例如有个sql假设假如 LIMIT 和 OFFSET 关键字同时进行使用的话,limit语句会先扫描offset+n行,然后再丢弃掉前offset行,返回后n行数据。
2023-05-08 11:32:29
3536
1
原创 cookie session token的区别
首先我们需要知道,之所以出现cookie、seesion等,是因为http是无状态的。无状态:就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的。
2023-04-06 10:54:54
1386
1
原创 自定义注解
元注解元注解 的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation(元注解)类型,它们被用来提供对其它 annotation类型作说明。1、@Target元注解@Target注解,是专门用来限定某个自定义注解能够被应用在哪些Java元素上面的,标明作用范围;取值在java.lang.annotation.ElementType 进行定义的。public enum ElementType { /** 类,接口(包括注解类型)或枚举的声明 */ TYP
2023-03-21 14:40:23
487
原创 数据持久化层--查询分离
何为查询分离?查询分离即每次写数据时保存一份数据到其他的存储系统里,用户查询数据时直接从中获取数据。何种场景下使用查询分离?1)数据量大:比如单个表的行数有上千万,当然,如果几百万就出现查询慢的问题,也可以考虑使用。2)查询数据的响应效率很低:因为表数据量大,或者关联查询太过复杂,导致查询很慢的情况。3)所有写数据请求的响应效率尚可:虽然查询慢,但是写操作的响应速度还可以接受的情况。
2023-03-17 18:26:47
881
1
原创 @Resource和@Autowired的一些理解
Spring依赖注入中,大家都知道@Resource和@Autowired。明明@Resource即支持名字又支持类型,还要@Autowired干嘛?
2023-03-13 10:35:01
401
1
原创 数据持久化层--冷热分离
有一个系统的主要功能是这样的:它会对接客户的邮件服务器,自动收取发到几个特定客服邮箱的邮件,每收到一封客服邮件,就自动生成一个工单。之后系统就会根据一些规则将工单分派给不同的客服专员处理。这家媒体集团客户两年多产生了近2000万的工单,工单的操作记录近1亿。平时客服在工单页面操作时,打开或者刷新工单列表需要10秒钟左右。要求进行优化:当时的数据情况如下:1)工单表已经达到3000万条数据。2)工单表的处理记录表达到1.5亿条数据。3)工单表每日以10万的数据量在增长。在客户提出需求之前,项目组已经通
2023-03-12 17:20:42
782
1
原创 svg转换到base64格式
需要将端上传过来的svg文件解析为字符串,然后再生成jpeg格式图片,再将图片转成Base64格式进行使用首先引入如下以来。版本一定按照这个来,高版本会出现各种类丢失的问题。再就是工具类代码功能测试可以看到生成了base64字符串进行转化后能够复原出图片
2022-12-06 10:35:03
5183
2
原创 一条SQL语句执行的顺序
大体来说,MySQL可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务 功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在 这一层实现,比如存储过程、触发器、视图等。存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、 Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为了 默认存储引擎。
2022-11-21 17:41:29
4029
原创 TIDB集群部署
从 TiDB 4.0 版本开始,TiUP 作为新的工具,承担着包管理器的角色,管理着 TiDB 生态下众多的组件,如 TiDB、PD、TiKV 等。用户想要运行 TiDB 生态中任何组件时,只需要执行 TiUP 一行命令即可,相比以前,极大地降低了管理难度。
2022-11-06 15:59:03
2693
1
原创 TiDB与MySQL兼容性对比
TiDB 的自增列仅保证唯一,也能保证在单个 TiDB server 中自增,但不保证多个 TiDB server 中自增,不保证自动分配的值的连续性,建议不要将缺省值和自定义值混用,若混用可能会收 DuplicatedError 的错误信息。explicit_defaults_for_timestamp=on,数据行更新时,timestamp类型字段不更新为当前时间。lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写。
2022-11-06 15:35:59
2313
原创 CDN的基本概念
CDN(Content Delivery Network)被称为内容分发网络,主要用于解决减少客户端请求的网络时延问题。假如一个上海的主机想要访问北京的主机的一些数据,那么数据肯定要走几百公里的路程。能不能在上海设置一个代理主机来缓存北京的主机对应的数据,这样的话,上海的主机直接访问上海的代理主机而不用在访问源服务器了,大大的减少了时延。CDN通过设置边缘代理服务器来大大的减少了客户端请求的网络时延。
2022-09-14 13:38:52
1080
原创 ElasticSearch高阶操作
默认数据库有下面这张表表中有N条数据类似于下面这种我们通过kibana创建索引结构然后通过自定义的接口把mysql里的数据导入到ES中去。
2022-08-28 14:16:26
1528
1
原创 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
今天重置云服务器后,再在终端用ssh去登陆这台机器报错。
2022-07-29 15:55:36
241
原创 ELK部署应用与工作机制
ELK是三个开源软件的缩写,分别表示Elasticsearch,Logstash和Kibana。Elasticsearch和Kibana我们上面做过讲解。Logstash主要是用来日志的搜集、分析、过滤日志的工具,适用大数据量场景,一般采用c/s模式,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作,再一并发往Elasticsearch上做数据分析。...
2022-07-17 20:22:56
426
原创 ES高可用集群配置
主节点负责创建索引、删除索引、分配分片、追踪集群中的节点状态等工作,主节点负荷相对较轻,客户端请求可以直接发往任何节点,由对应节点负责分发和返回处理结果。来设置最少可工作的候选主节点个数(即节点获得的票数必须大于该值才能成为master)。建议设置为比如三个候选主节点,该配置项为(3/2)+1,来保证集群中有半数以上的候选主节点,没有足够的master候选节点,就不会进行master节点选举,减少脑裂的可能。协调节点,是一种角色,而,不能通过配置项来指定哪个节点为协调节点。...
2022-07-17 19:44:21
2679
FTP服务器配置步骤详解.pdf
2020-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅