- 博客(855)
- 资源 (4)
- 收藏
- 关注
原创 982. 按位与为零的三元组
然后再遍历数组,用第三个数去与前两个数的结果,如果等于0,则满足条件。的结果也是0,那么也会放到map,这个时候map中有个元素就是。首先用简单的思路切入,map来存储数组中每两个数组进行。当第三轮遍历的时候,取nums中的数字去与另外两个数的。随机选择两个数,记录两个数的与结果。的结果,然后遍历数组用数组中的每一个数和另外两个数。运算,发现结果为0,但是整个数组中 另外两个数的。结果 为0,的数字有2对,所以结果应该是。的结果为0,会被放到map,那么。操作后结果为0的个数…后结果为0的,有两对元素。
2024-09-27 15:33:42
462
1
原创 768. 最多能完成排序的块 II
简单来说,给你一个数组,将它拆分成尽可能多的块儿,每个块儿进行升序后进行连接,最后形成的数组要合原本给你的数组直接进行升序后的结果一样。head,我们可以遍历一遍数组 arr ,动态判断到目前数字 num 为止最多能分出多少排序块,最后看看stack中保存了几个排序块的最大值就是答案了。这题理解起来比较绕,这里先简化一下题目。和源数组直接进行ASC后的结果一致。也拆开了,拆开了的话进行ASC得到。:不是说拆的越多越好,比如不能把。拆开后的块儿进行ASC–>可以把它分成两块,例如。可以得到最多的块数。
2024-09-26 20:35:21
547
原创 906. 超级回文数
上进行插入来得到新回文,处理代码会尝试在当前偶数长度的回文数中间插入一个或两个数字,生成更长的回文数。这样做的目的是生成可能符合条件的下一个更长的回文数,并且保持回文数的对称性。如果当前回文数的长度是偶数,继续通过在中间插入一个或两个字符(从’0’到’9’)来生成新的、更长的回文数,并将它们加入队列。因为回文范围是有限的,那么我们可以先初始化基础情况,也就是枚举出单个数字,和两位数字的回文。题目意思很简单,在给定范围中找到所有满足,它本身是回文,且它的平方也是回文的数字个数。,远远超出题目要求的范围。
2024-09-24 21:26:57
976
原创 1542. 找出最长的超赞子字符串
2-只有一个数字出现奇数次,其余数字出现偶数次,这个情况就需要在内部再来一次for循环去判断了,内部循环的目的是检查通过切换单个数字的奇偶性是否可以找到一个更长的超赞子字符串。因为只关心一个字符出现的次数是奇是偶,因此不需要真正的计数,可用1表示该数字出现了奇数次,0 表示该数字出现了偶数次,然后数字范围为。然后在满足条件的情况下计算超赞字串的长度,以上面的例子为例,长度即为当前status的位置-第一次出现相同status的位置,即。,我们用一个长度为 10 的二进制数来表示状态,每一位对应数字。
2024-09-22 20:59:42
962
原创 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
851
原创 1035. 不相交的线
因为DP的含义是前N个数,所以前0个数相当于没有啥用,所以要获取到最后题目要求的结果那就是要。还是根据DP数组的含义,需要到达m和n,所以for循环需要能够等于数组长度。题目一看是求最值,那就可以考虑用DP来做。NOTE] 1、DP数组的大小。NOTE] 2、for循环边界。,所以初始化大小要初始化为。
2024-09-18 11:46:21
336
原创 321. 拼接最大数
2、从两个数组组成对应的子序列,使用单调栈思想(遍历数组,如果当前数字比已选择的最后一个数字大,并且还可以替换元素,则删除已选的元素并选取当前更大的元素。选取两个元素,选取出来后必须保持顺序,比如选4和2,那么组成新数组这两个元素的顺序必须还是4在2前面),元素总长度不超过K,组成一个最大的数组。它的核心逻辑就是看当前选择的元素是不是比现在的元素小,如果比现在的元素小而且还有可替换的元素,那么用当前元素替换已选择元素。个元素后,尚未选中的元素数量,它们可以被用来替换当前已选中的元素,达到优化结果的目的。
2024-09-15 21:49:24
1025
原创 PTA.7-6 数字拆分求和
这题目有两种思路:1. 利用等差数列公式 2. 暴力法公式记不住,所以讲下暴力法(PTA对时间空间复杂度要求很低,LeetCode行不通的,还是要背公式)暴力法很简单,就是穷举所有可能性。具体步骤是:首先假设序列的首项为 a1,然后依次构造出符合条件的序列。对每个序列,依次加上差值 1、2、3、…,直到总和等于 k 或超出 k。如果找到符合条件的序列,打印出来。
2024-09-06 11:05:16
302
原创 MySQL深度分页
深度分页问题的本质是在 MySQL 数据库中,通过 LIMIT 和 OFFSET 关键字进行分页时,MySQL 需要在每次查询时扫描整张表,直到找到当前页的数据。这种查询方式需要进行大量的磁盘 I/O 和内存操作,导致查询效率非常低下。当我们每次查询的记录数很小,但是查询次数很多时,就会产生大量的 I/O 操作,严重影响查询效率。例如有个sql假设假如 LIMIT 和 OFFSET 关键字同时进行使用的话,limit语句会先扫描offset+n行,然后再丢弃掉前offset行,返回后n行数据。
2023-05-08 11:32:29
3244
1
原创 cookie session token的区别
首先我们需要知道,之所以出现cookie、seesion等,是因为http是无状态的。无状态:就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的。
2023-04-06 10:54:54
1226
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
430
原创 数据持久化层--查询分离
何为查询分离?查询分离即每次写数据时保存一份数据到其他的存储系统里,用户查询数据时直接从中获取数据。何种场景下使用查询分离?1)数据量大:比如单个表的行数有上千万,当然,如果几百万就出现查询慢的问题,也可以考虑使用。2)查询数据的响应效率很低:因为表数据量大,或者关联查询太过复杂,导致查询很慢的情况。3)所有写数据请求的响应效率尚可:虽然查询慢,但是写操作的响应速度还可以接受的情况。
2023-03-17 18:26:47
678
1
原创 @Resource和@Autowired的一些理解
Spring依赖注入中,大家都知道@Resource和@Autowired。明明@Resource即支持名字又支持类型,还要@Autowired干嘛?
2023-03-13 10:35:01
336
1
原创 数据持久化层--冷热分离
有一个系统的主要功能是这样的:它会对接客户的邮件服务器,自动收取发到几个特定客服邮箱的邮件,每收到一封客服邮件,就自动生成一个工单。之后系统就会根据一些规则将工单分派给不同的客服专员处理。这家媒体集团客户两年多产生了近2000万的工单,工单的操作记录近1亿。平时客服在工单页面操作时,打开或者刷新工单列表需要10秒钟左右。要求进行优化:当时的数据情况如下:1)工单表已经达到3000万条数据。2)工单表的处理记录表达到1.5亿条数据。3)工单表每日以10万的数据量在增长。在客户提出需求之前,项目组已经通
2023-03-12 17:20:42
624
1
原创 svg转换到base64格式
需要将端上传过来的svg文件解析为字符串,然后再生成jpeg格式图片,再将图片转成Base64格式进行使用首先引入如下以来。版本一定按照这个来,高版本会出现各种类丢失的问题。再就是工具类代码功能测试可以看到生成了base64字符串进行转化后能够复原出图片
2022-12-06 10:35:03
5001
2
原创 一条SQL语句执行的顺序
大体来说,MySQL可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务 功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在 这一层实现,比如存储过程、触发器、视图等。存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、 Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为了 默认存储引擎。
2022-11-21 17:41:29
3922
原创 TIDB集群部署
从 TiDB 4.0 版本开始,TiUP 作为新的工具,承担着包管理器的角色,管理着 TiDB 生态下众多的组件,如 TiDB、PD、TiKV 等。用户想要运行 TiDB 生态中任何组件时,只需要执行 TiUP 一行命令即可,相比以前,极大地降低了管理难度。
2022-11-06 15:59:03
2362
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
1954
原创 CDN的基本概念
CDN(Content Delivery Network)被称为内容分发网络,主要用于解决减少客户端请求的网络时延问题。假如一个上海的主机想要访问北京的主机的一些数据,那么数据肯定要走几百公里的路程。能不能在上海设置一个代理主机来缓存北京的主机对应的数据,这样的话,上海的主机直接访问上海的代理主机而不用在访问源服务器了,大大的减少了时延。CDN通过设置边缘代理服务器来大大的减少了客户端请求的网络时延。
2022-09-14 13:38:52
981
原创 ElasticSearch高阶操作
默认数据库有下面这张表表中有N条数据类似于下面这种我们通过kibana创建索引结构然后通过自定义的接口把mysql里的数据导入到ES中去。
2022-08-28 14:16:26
1473
1
原创 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
今天重置云服务器后,再在终端用ssh去登陆这台机器报错。
2022-07-29 15:55:36
201
原创 ELK部署应用与工作机制
ELK是三个开源软件的缩写,分别表示Elasticsearch,Logstash和Kibana。Elasticsearch和Kibana我们上面做过讲解。Logstash主要是用来日志的搜集、分析、过滤日志的工具,适用大数据量场景,一般采用c/s模式,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作,再一并发往Elasticsearch上做数据分析。...
2022-07-17 20:22:56
318
原创 ES高可用集群配置
主节点负责创建索引、删除索引、分配分片、追踪集群中的节点状态等工作,主节点负荷相对较轻,客户端请求可以直接发往任何节点,由对应节点负责分发和返回处理结果。来设置最少可工作的候选主节点个数(即节点获得的票数必须大于该值才能成为master)。建议设置为比如三个候选主节点,该配置项为(3/2)+1,来保证集群中有半数以上的候选主节点,没有足够的master候选节点,就不会进行master节点选举,减少脑裂的可能。协调节点,是一种角色,而,不能通过配置项来指定哪个节点为协调节点。...
2022-07-17 19:44:21
2566
原创 ES数据类型
用于存储多个JSON对象组成的数组,nested类型是object类型中的一个特例,可以让对象数组独立索引和查询。用于存储单个JSON对象,类似于JAVA中的对象类型,可以有多个值,比如LIST,可以包含多个对象。结果可以看到,这两组数据都能找出,因为每一组数据都是作为一个整体进行搜索匹配,而非具体某一条数据。对于GEO地理位置类型,分为地图Geo-point,和形状Geo-shape两种类型。数据库里的日期类型需要规范具体的传入格式,ES是可以控制,自适应处理。...
2022-07-17 19:23:59
4045
原创 用maven下载依赖报错: Authorization failed for xxx 403 Forbidden
今天在新电脑上自己创建了一个新项目想运行一下,但是maven依赖一直拉不下来,就连最简单的springboot的依赖都拉不下来。我的maven用的是公司的配置文件,公司代理会阻止从 maven Central 等下载依赖第一种:不要使用公司的setting文件第二种:直接下载公司的项目,不要练手了。。。...
2022-07-10 15:12:49
3805
原创 网址链接大小写区分问题
今天发起一个请求的时候在地址栏输入了一个url地址,但是怎么都得不到正确的东西。url地址类似于。其实就是一个下载链接,但是怎么都下载不到正确的包。网址的基本结构是:[协议]😕/[域名]/[路径]。协议和域名部分不分大小写。路径部分是否区分大小写则不一定,要看具体网站后台是如何实现的。而我们的网关并没有对路径做大小写同化处理,所以大小写是敏感的。后台要求的其实是 ,我写成了 。导致后台无法正确读取指令。参数中的N换成大写,即...
2022-07-06 15:57:42
1290
原创 Collectors.toMap使用解析
背景之前我们可能会遇到一些把List 转 Map 操作,在过去我们可能使用的是 for 循环遍历的方式。例如:Map<String, String> map = new HashMap<>();for (User user : userList) { map.put(user.getId(), user.getName());}在java8之后我们就可以用stream来操作集合了。使用在上面的例子,假如用stream流新特性来做就一行代码userList.
2022-03-29 17:46:13
4371
原创 com.sun.mail.util.MailConnectException:Couldn‘t connect to host, port:smtp.aliyun.com, 25; timeout
问题描述SpringBoot项目部署到阿里服务器,发送邮箱报错com.sun.mail.util.MailConnectException:Couldn't connect to host, port:smtp.aliyun.com, 25; timeout ,在本地没问题原因阿里云禁用了25端口号解决在yml文件中 将25端口改为465端口,并启用smtps协议mail: host: smtp.163.com username: ******@163.com
2022-03-20 20:46:48
1791
原创 Lombok的@Builder.Default失效
问题今天有一个类,有两个字段用了@Builder.Default 来修饰。但是当我往数据库插入时候发现这两个数据是null,但是我已经指定了默认值啊原因我创建这个对象的时候用的是new ,没走Lombok解决创建对象用xx.builder().build();...
2022-03-16 21:03:43
2103
1
原创 postman发送x-www-form-urlencoded格式的参数后端接收不到
问题postman发送x-www-form-urlencoded格式的参数后端接收不到,后端controller层已经写了@RequestParam 来接收参数原因我调用请求是用的get方法解决用post发起请求
2022-03-16 20:44:28
8736
2
FTP服务器配置步骤详解.pdf
2020-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人