- 博客(45)
- 收藏
- 关注
原创 数组连续和(滑动窗口)
2.当前和sum>=x时,right指针不必再往后移动,此时符合条件的数组个数已知;所以尝试让left指针收缩。1.当前和sum<x时,一直右滑;
2024-05-10 23:51:16
327
原创 “Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&ar”。centOs7使用yum安装命令失败的解决方案
更换yum源解决问题
2024-07-09 18:44:45
899
原创 并查集小记
2.合并: 寻找相邻节点a,b的各自父亲fa,fb,若不同,则合并:f[f[a]]=fb.1.初始化:将要合并的所有对象初始化为自己的父亲节点。
2024-06-15 17:10:02
176
原创 Java-高级数据结构在算法中的应用:红黑树
Java中的集合TreeSet底层实现使用了红黑树,红黑树本身是一颗平衡二叉树,整体元素呈有序状,以任意顺序插入元素(实现了comparator接口的元素),都会得到一个有序集合。此外,TreeSet支持返回特定元素的前一个和后一个元素,此特性在leetcode周赛400期的t4中得到应用:使用该数据结构结合线段树,可灵活修改节点值,并容易得到某区间的最大空白区域值。
2024-06-04 15:07:06
166
原创 算法-跳马
解法:每一个点都可能作为汇集的那个点,因此采用遍历的方式,对每个点进行处理,得出每个点的“所有马跳到本点的最小步数和“,取最小值即可。逻辑1:以该点作为源点出发,求处从该点出发访问所有马(如果能访问完)所需的最小步数。根据马走日的规则,下一步有八个格子可作为”下一个格子“,”下一个格子“可能是马,也有可能是空格。如果是马,该马有自己的可跳距离k,从该马的位置离源点的步数step(暗示用队列)已知,若k>=step,说明该马可跳到汇集点(源点),否则结束,因为有一个马无法跳到汇集点;
2024-05-24 18:16:56
380
原创 算法-可完成的最大任务数
为了尽可能多的完成任务,充分利用时间,越早越好,所以从项目开启的那一天起就开始做任务,一直做到项目结束为止。但是,对于第i天来说,若可执行的任务有多个,该如何选择?根据设定,这些任务都有各自的结束时间,所以为了尽可能多的做任务,优先选择结束时间早的任务;若第i天没有任务,就选择等待(休息)。根据思路,可写出暴力搜索的代码(超时)
2024-05-20 21:53:28
611
原创 算法-亲子游戏
问题简述:求从mom点到baby点时,最短路径中可获得的最多糖果数看似bfs问题,实则没那么简单。一般的bfs只是完成点的遍历,路径中的点是无条件互斥访问的。而本题要求的是糖果数最多的路径(可能不止一条),显然对可访问的点不能再采用无条件互斥访问的方案,如下图:路径1和路径2都可能经过点pot(为简化论述,实际上可能有四条路径经过点pot),那么pot能不能无条件互斥访问?
2024-05-20 21:16:50
933
原创 算法-解密犯罪时间(回溯求全排列
要求的时间需要晚于当前时间且和当前时间最近。时间串里一共四个数字字符,做全排列即可,使用到回溯算法。把时间串里的“:”剔除后,做回溯爆搜,每取4个字符就判断一次:1.作为时间串是否合法;2.如果合法,反应到最终结果中去;特殊处理1:当以输入时间串得不到更大的时间时,说明比当前时间更晚的是第二天的时间,又要求这个时间离当前时间最近,所以直接取能得到的最小时间即可。特殊处理2:当输入“00:00”,“11:11”,“22:22”这些四个位置都相同的时间串时,答案是其本身,含义:第二天的同一时刻。
2024-05-10 22:17:17
520
原创 算法-靠谱的车(数位模拟)
简要:每个数位从9到0均统计一遍,其中个位上只需统计1次。原数肯定不包含1,在逐一借位时可能产生4,要单独处理。对于n=100,个位为0,显然没有跳过4,需要将其降到个位大于4的最大数:99,即借位。99: 多加了1, 高位降为变89,再判断。49: 从40-50都被跳过,多加了10.09:多加了1,高位无法再降,结束。89: 多加了1, 高位降为变79。79: 多加了1, 高位降为变69。
2024-05-10 16:14:12
431
原创 大整数工具-BigInteger
减法:big=big.subtract(BigInteger another)乘法:big=big.multiply(BigInteger another)除法:big=big.divide(BigInteger another)加法:big=big.add(BigInteger another)
2024-05-09 10:57:01
209
原创 二分插入细节
范围收缩:插入后其后一个元素肯定大于等于它,前一个元素肯定小于它,当find<target时,find一定不是插入位置,可令left=mid+1,当find>=target时,target可能替代find成为第mid小的元素(从0数),find变成第mid+1小,所以对于可能取到的数,不能跳过,所以右边界right=mid。边界:由于是向数组插入元素,插入位置的前一位是0~n-1,插入后元素的下标可能为0~n,所以,搜索的范围要设为0~n;
2024-04-24 23:37:35
307
原创 关于0 1背包问题的详细解读-(不断更新中)
第368场leetcode周赛第二题使用到了0 1背包问题的解法,由于当时对0 1背包问题理解不是很透彻,导致这题丢分。在b站上看了启蒙课程再加上自己理解,于是有了这篇博客,一是方便自己复习总结,二是为算法小白提供帮助。
2023-11-01 12:08:07
205
原创 一阵见血回答”为什么要有包装类?“
为了使Java语言面向对象的设计理念更加严谨,“面向对象”中的对象,是方法和属性的集合体,属于java数据类型中的引用数据类型,而java的数据类型还包括了基本数据类型,为了使“java的基本数据类型“也满足”面向对象“,必须要实现基本数据类型。,因此才有了包装类。基本数据类型和它的包装类之间,通过。
2023-07-31 11:46:12
196
原创 关于在Java中使用正则表达式对字符串中符合条件的字串进行提取、处理的代码实现
关于在Java中使用正则表达式对字符串中符合条件的字串进行提取、处理的代码实现
2023-04-12 11:29:21
1567
原创 javax/validation/constraints/NotBlank解决办法
javax/validation/constraints/NotBlank解决办法
2023-03-22 16:00:45
1286
原创 补充:关于设置自定义RedisTemplate序列化器失效的问题
解决了RedisTemplate自定义序列化器失效时极其不容易被发现的一个bug
2022-09-16 17:20:14
763
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅