自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 使用cursor-free-vip时出现的错误及其解决方案

我的是在C:\Users\28299\AppData\Roaming\Cursor\User\globalStorage下面,28299是我的用户名,你找到你自己的,AppData 模式我记得是没有的,这里需要修改 查看 显示隐藏的项目,你需要打开这个文件夹,找到。直接修改成这样:cursor_path = D:\cursor\cursor\resources\app,这里需要替换成你自己的路径,可以右键cursor图标,找到属性,就可以看到安装位置了。中找到,打开这个配置文件,找到。

2025-11-08 21:07:58 995 2

原创 Springboot 整合ShardingSphere实现分库分表

分库分表是一种将数据拆分成数据库或表中的策略,例如按照时间的月份创建新的表,将数据隔离开,用于提高查询效率,我们可以使用 Apache 提供的服务,用于简化数据库分片、读写分离、分布式事务等复杂场景的管理。

2025-10-16 18:06:54 708

原创 Springboot整合使用Sa-Token校验权限

对于简单的权限校验可以使用AOP + 注解实现,但是复杂的权限校验,可以使用第三方框架。

2025-10-14 21:58:31 954

原创 如何修改VM虚拟机中的ip

IP地址可以随意修改,但是不要和网关重复,而且要和网关的前三部分一样,我的网关是192.168.72.2,我们习惯把他设置为192.168.72.1,比网关少1就行了。1、首先,打开你的Vm,点击上面的编辑->虚拟网络编辑器,然后选择VMnet8,查看子网掩码,这个需要记住,不过一般都是255.255.255.0。7、打开我们的VM,在VM右下角,从左往右数一般是第三个,有一个网络适配器,我们。3、打开你自己主机的控制面板,切换成小图标,然后找到网络和共享中心,之后打开。目录,这个目录是固定的。

2025-07-30 20:48:50 1695

原创 蓝桥杯 第 28 场 蓝桥入门赛

原本以为是前缀和的题,结果仔细看完题,就是简单的数学题,因为每一次操作之间互不影响,所以先把所有数求和,然后根据l与r的关系,判断奇偶性,然后对总和相加减即可。因为咖啡有无限杯,而且可以按照任意毫升比例调制,所以只需要判断所有咖啡比例中最大浓度和最低浓度与目标浓度的关系即可。经典流水线问题,使用Johnson算法,参考这篇文章。

2025-04-08 22:43:18 296

原创 Johnson算法 流水线问题 java实现

3. 把list1和list2进行合并,list1在前list2在后,这个顺序即为加工的顺序。某印刷厂有 6项加工任务J1,J2,J3,J4,J5,J6,需要在两台机器Mi和M2上完。1. 把ai<=bi 的放在数组list1,把ai>bi放在数组list2中。2. 把list1进行从小到大排序,list2从大到小排序。在机器Mi上各任务所需时间为5,1,8,5,3,4单位;在机器M2上各任务所需时间为7,2,2,4,7,4单位。1.给出任务的最优加工顺序,使得总加工时间最短;list中即为最优的顺序。

2025-04-08 22:27:20 322

原创 蓝桥杯 2. 开赛主题曲【算法赛】

类似,因为题目中规定只有小写字母,所以定义统计数组时只需要定义26个字母即可,然后每次遍历的字符减去‘a’即为他的下标。

2025-04-06 20:00:37 331

原创 力扣刷题3. 无重复字符的最长子串

方法:滑动窗口,创建一个数组用来记录每一个字符的出现次数,第一层循环为右指针,内循环如果当前位置出现次数大于2,则进入while循环,让左指针一直加一,然后在统计数组中减1。创建统计字符的数组可以稍微大一点,因为不能确定字符的对应ASCII码。

2025-04-06 19:56:44 190

原创 力扣刷题724. 寻找数组的中心下标

先求出前缀和数组,然后遍历数组,如果数组最后一位减去当前数等于前一位,则可以返回。

2025-03-31 22:25:23 267

原创 力扣刷题474. 一和零

我们先求出每一个字符串的体积(0和1的个数),第一层循环即为遍历所有的字符串,内循环为双层循环,因为要同时满足两个条件,k为当前的字符串,i为背包0的容量,j为背包1的容量。这一道题主要是把实际问题抽象为背包问题,对于每一个字符串的价值都是1,每一个字符串的体积由两部分组成,0和1的大小,所以判断时需要同时满足0和1的大小同时小于给定的01大小(背包容量)。

2025-03-30 20:48:23 248

原创 力扣刷题494. 目标和

因为这一道题不需要记录所有的方法,只需要统计一共的个数,所以可以进行优化。直接进行深搜查找出所有的情况,缺点严重超时,只能过20个案例。

2025-03-29 22:37:12 271

原创 力扣刷题1049. 最后一块石头的重量 II

这一道题是求石子相撞后最小的值,难的是如何把这道题转换为背包,可以把这一堆石子分为两堆,让这两堆的石子重量差值最小,即为每一堆的石子重量为所有石子重量之和除二,这时候就可以转换成背包问题,套用背包模版,然后第一堆的重量即为dp[m][n],第二堆的重量为sum-dp[m][n],那么这两堆的重量在向减,得到的即为最小的重量Math.abs((sum - dp[m][n]) - dp[m][n])

2025-03-29 20:29:57 225

原创 力扣刷题416. 分割等和子集

首先先求数组中所有的数之和,如果不能被2整除,那就不能分割两个子集元素和相等。r然后直接套用01背包模版即可。背包的容量即为所有数之和在除2,如果dp最后一个元素与背包的容量相等,那么即为可以分割成两个相等的子集。

2025-03-29 17:57:31 269

原创 力扣刷题239. 滑动窗口最大值

while 循环的目的是移除队列尾部所有比当前元素小的索引,以保持队列的单调递减性质。如果在移除这些元素之前就将当前索引 i 添加到队列中,那么队列的单调性可能会被破坏。1. 先遍历全部数组,然后把队列最后的一个元素与当前遍历的数进行判断,如果比当前数小,则移除队列最后元素,循环此操作。我们可以考虑用单调队列,让队列呈递减顺序,每次获得队列的第一个元素,即为最大值。这一道题的难点为 如何从滑块中找出最大的值,并且时间复杂度为O(1)4. 队列的第一位即为这个区间最大的值。小的元素,则队列不呈现递减。

2025-03-28 23:09:54 307

原创 力扣刷题79. 单词搜索

先遍历给定数组,如果满足第一位字符,则加入StringBuilder中,设置访问数组为true,然后进行递归深搜,如果sb中的长度与目标字符串长度相同并且相等,则把标志数设为1,然后进行返回;进行上下左右四个方位的判断,如果位置在合法区域内,并且该位置字符满足目标字符串的字符,则加入sb中,并且设置vis为true,然后进行递归,回溯时候,记得把vis设置为false,并且删除sb中最后的字符。在主函数中,对flag进行判断,如果为1,则返回true,否则返回false。

2025-03-26 23:09:05 232

原创 力扣刷题22. 括号生成

递归一次加入括号即可,需要定义两个变量用来记录左括号与右括号的数量,如果左括号的值小于最大值,则加入左括号,进行递归,如果右括号小于左括号,则加入进行递归。

2025-03-26 18:19:47 475

原创 力扣刷题39. 组合总和

需要定义一个index变量用来记录访问数组的下标,每次递归进行传参,在搜索过程中,因为为了避免重复数据,而且允许一个元素的重复出现,传入index时传入当前遍历的i值即可。

2025-03-25 23:07:46 267

原创 力扣刷题17. 电话号码的字母组合

定义变量index,用来记录当前访问第几个字符用来匹对,定义StringBuilder用来拼接字符串,定义返回集合List,定义map集合,用来映射数字和字母的关系。先获得数字对应的字符串,然后遍历这个字符串,加入sb中,然后进行递归,递归时下标变量index++。在dfs函数中,如果sb的长度等于字符串digits的长度,则放入list中,并且return。回溯时,index--,并且删除sb中最后的字符。这一道题需要一个定义几个全局变量。

2025-03-25 21:11:07 165

原创 力扣刷题78. 子集

最开始的代码是没有记录位置的变量,每一次循环递归判断当前集合是否在目的集合中,而且需要排序,导致时间复杂度过高,而且在dfs中进行排序后,在移除最后的数据,数据会发生变化,导师移除了不该移除的数据导致结果错误。如果不进行排序,而在主函数中在遍历所有的结果进行排序移除重复集合,时间复杂度会过高导致超时。使用dfs,用一个变量记录当前开始遍历的位置,下一次递归从当前位置+1开始递归,然后加入集合中,可以保证不会重复,回溯时直接移除最后的元素即可。

2025-03-24 22:32:03 179

原创 力扣刷题130. 被围绕的区域

使用dfs,可以从边界出发,如果边界为'o';然后进行递归,把所有和边界这个“o”相连的都打上标记,因为这些不可能被包裹,,然后再遍历dfs后的数组,如果被打上标记,则更改为“o”,如果没有被打上标记,则全部改为“X”

2025-03-20 22:46:35 156

原创 力扣刷题376. 摆动序列

定义两个动态规划数组,一个记录上升的dp,一个记录下降的dp。如果相等,则dp[i] = dp[i-1]如果后一位数大于前一位数,则有。如果后一位数小于前一位数,则有。

2025-03-20 21:14:31 291

原创 力扣刷题977. 有序数组的平方

因为原数组是有顺序的,利用双指针,判断两个数的大小,放入新的数组即可。先遍历所有的数,然后用Sort排序。

2025-03-20 20:29:01 280

原创 力扣刷题46. 全排列

在dfs中,首先判断res的长度是否等于给定数组的长度,如果相等的话,把这个链表添加入list,切记,这里添加不要直接添加,需要重新new一个链表 ,再把这个这个新的链表加入list,在 Java 中,对象类型变量在传参的过程中,复制的是变量的地址。使用dfs搜索,查找所有的情况,首先定义所有的链表集合list,在定义每一种情况的链表res,在主函数中遍历所有的初始元素,首先初始化res,并且添加到res中,进行深搜。,在每一次回溯时,移除res最末尾的元素。

2025-03-19 23:21:37 225

原创 力扣刷题994. 腐烂的橘子

使用bfs,先遍历所有的橘子,统计所有的橘子数量,然后把腐烂的橘子放入队列当中,然后进行bfs遍历,套用bfs的模版,但是每一次出队的橘子(腐烂的橘子)需要统计一下数量,用来bfs结束之后比对是否感腐烂完全。每一层广搜遍历需要把时间加一。bfs结束后,如果出队的橘子小于统计所有的橘子,说明没有腐烂完全,返回-1 ,如果统计的橘子数量为0,返回0,因为没有橘子腐烂,否则返回统计的时间。

2025-03-18 22:16:50 219

原创 力扣刷题200. 岛屿数量

在dfs函数中,每次递归四个方向,把所有的‘1’ 都改为‘0’,在主函数中,循环遍历所有的位置,如果当前位置是‘1’,统计数加一,然后进行深搜操作,每一次深搜操作都可以把所有相邻的‘1’ 都更改为‘0’

2025-03-18 20:58:05 178

原创 力扣刷题167. 两数之和 II - 输入有序数组

双指针,首先定义两个指针左指针l和右指针r,分别指向最左边和最右边,先求两个指针指向的数之和,因为数组已经按照非递减排序了,如果该和大于目标数,那么就让最右边的指针减一,否则让最左边的指针加一,直至找到目标数即可。

2025-03-09 23:17:17 223

原创 力扣刷题392. 判断子序列

定义两个指针,分别指向子序列和原始串,开始匹配,如果匹配成功,则两个指针分别加一,如果不匹配,让原始序列加一,如果为子序列的话,则最后子序列 的指针应该等于他的长度。

2025-03-09 22:59:23 122

原创 力扣刷题11. 盛最多水的容器

这一道题可以用双指针的解法,左指针在最左边,有指针指向最右边,每次判断左右指针的值大小,如果是左指针小于有指针,就让左指针加一,如果是右指针小于左指针,让右指针减一,可以确保寻找到最大的值,有贪心的感觉。暴力解法就是 双层循环,遍历寻找最大的值,但是会超时。

2025-03-09 22:48:16 243

原创 力扣刷题125. 验证回文串

直接遍历字符串即可,用stringbuilder 中的service反转字符串,然后再用equalsIgnoreCase进行判断。

2025-03-09 22:25:44 181

原创 力扣刷题134. 加油站

一开始的思路是循环每一次出发的位置,然后把数组进行拼接,如果能遍历完拼接的数组,则可以达到最开始的位置,但是在最后几个案例会超时,时间复杂度为o(N²)

2025-03-08 22:57:57 256

原创 2024CCPC郑州站 F 题

这题不难,直接按照题目要求直接写就行。

2025-03-03 22:16:36 169

原创 2024CCPC郑州站 B 题

一开始以为就是每增加一天,如果金钱够了,直接购买即可,发现需要用dp来写。),如果是最低价格的话,然后再判定当前的金额够不够,如果够,直接购买最大数量。需要求出从这一天到最后一天最便宜的价格。是否是之后的最低价格(然后检查当前天的价格。

2025-03-03 21:58:26 218

原创 补题蓝桥杯14届JavaB组第4题

到达传送门的时间需要进行判断,如果上一次传送到达传送门,需要判断上一次传送到这的位置在当前传送门的上方,还是下方。一个用来记录到当前位置的最短时间,另一个用来记录到达当前位置传送门的最短时间。需要两个一维数组来进行dp。

2025-02-27 22:07:51 340

原创 蓝桥杯15届JavaB组6题

一开始用的dfs,但是好像是因为数据量太大,数据错误,而且会超时,然后使用bfs。

2025-02-27 22:01:26 352

原创 力扣刷题121. 买卖股票的最佳时机

只需要遍历一次即可,遍历时记录遍历前的最小数值,然后用当前数值减去最小数值即可求出。

2025-02-23 21:14:05 178

原创 力扣刷题139. 单词拆分

但是这么简单显然是错误的,没有考虑到如下的情况: s ="goalspecial" wordDict =["go","goal","goals","special"] 当字符串中的一个子字符串包含有多个字典中的词,则需要考虑要使用哪个词了。看了官方的题解后,使用dp[i]=true来表示s[i]之前的字符串可被字典完全替换。最开始是字符串从头开始遍历子字符串,遇到字典内有的单词则直接i+上这个单词的长度,最后看看是否整个字符串都能遍历完即可。需要判断dp[j]的合法性才能继续遍历。

2025-02-23 17:29:27 245

原创 力扣刷题279. 完全平方数

类型一样,完全背包问题,只需要把代码的条件改一下就行,不需要判断所选数字和背包容量的大小,因为所选择数字没有限制。

2025-02-22 23:27:24 219

原创 力扣刷题322. 零钱兑换

包含为i - coins[j]的硬币面额在加一。当不包含当前的硬币面额为dp[i]完全背包问题,可以重复选择硬币。

2025-02-22 22:30:10 179

原创 力扣刷题42. 接雨水

最开始想的是暴力,定义一个统计变量count,每一个位置的雨水数量为左边和右边最大值的最小值,但是最后三个案例过不去超时。然后在遍历柱子的高度,求出当前位置左右两边的最小值,然后减去当前柱子的位置,如果大于0,则count相加。使用动态规划,先求出每个位置左右两边的最大值。

2025-02-21 00:17:17 154

原创 刷题日记 2024-12-9 LeetCode:633. 平方数之和

第一层先遍历,然后内循环套一个二分进行查找。注意定义类型是要为long。

2024-12-09 20:29:06 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除