- 博客(493)
- 收藏
- 关注

原创 一篇博客带你学会Lambda(Stream + Optional、后端必知必会)
本文介绍java8中的lambda表达式的用法。包含Stream、Optional、匿名内部类等,同时包含例子让你更容易理解。但本文适合java基础扎实的人,说明性内容较少,主要是帮助大家快速上手。
2024-11-24 09:00:00
710

原创 一篇博客带你学会Rabbitmq(后端必知必会)
本文介绍Rabbitmq,包含简单案例,多种交换机的使用,以及消息序列化等,一篇博客让你学会Rabbitmq,有多种案例,代码和运行结果。
2024-06-04 15:13:50
969

原创 一篇博客带你了解JVM(后端必会、七千字精简笔记)
本篇为个人jvm笔记,较为精简,适合已经学习过的人复习,包含场景垃圾回收算法,场景垃圾回收器等知识。
2024-05-08 17:12:03
1322

原创 一篇博客带你学会JavaScript(前后端必会、二万字笔记)
主要包含script 标签、基本语法、DOM 操作、事件传播、定时器等。包含代码和动图,让你直观的了解javascript,一篇就够,一看就懂。
2024-04-11 08:57:33
1046

原创 一篇博客带你学会CSS(前后端必会、三万字笔记)
用一篇博客带你学会CSS,里面包含大量的样例和展示效果,各种动图让你更好的理解。三万字的笔记,让你全方位细致学会。
2024-04-10 15:33:11
1416

原创 Redis的前世今生(内存管理、持久化、高可用、集群 详解)一看就懂
redis的诞生和mysql脱不了关系,在redis还未出现时,用户的每次请求都是直接访问mysql,渐渐的人们发现,请求大部分都是读操作,而且很多都是重复的数据,磁盘的i/o是很慢的,所以人们就想,能不能学学cpu建立的缓存机制,mysql也搞一个缓存,就这样一个。在判断一个元素是否存在时,就会用多个相同哈希函数映射,然后判断映射的位置上是否都为1,若都为1说明可能存在,因为可能有其他的一些元素映射会将这些位置正好都置为了1,所以可能会发生很小概率的误判,当然如果不都为1,那么一定是不存在的。
2024-04-06 17:17:33
1146
2

原创 SQL:增、删、改、查 基本语句 Navicat建库(后端必知必会 用法 + 例子)
本文详细介绍数据库sql的增、删、改、查语句,并含义用法与例子,让你更容易使用和理解。
2023-09-28 14:37:53
3343
原创 LeetCode:41. 缺失的第一个正数(原地哈希 Java)
原地hash,因为差的最小的正数最大就是n + 1,可以将对应位置的值交换到对应hash的idx上,注意idx是从0开始,正数是从1开始的。 最后遍历hash,如果对应位置上的值不为对应的idx,那么说明确实这个正数,返回即可。
2025-03-19 17:04:39
283
原创 LeetCode:1186. 删除一次得到子数组最大和(DP Java)
f[i][0] 表示到下标位i的元素为右端点时,删除0个元素的最大值。f[i][1]表示到下标i的元素的为右端点时,删除1个元素的最大值。
2025-03-17 18:06:22
133
原创 LeetCode:146. LRU 缓存
/ 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}lRUCache.put(4, 4);// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}lRUCache.put(2, 2);// 缓存是 {1=1, 2=2}// 返回 -1 (未找到)lRUCache.get(1);// 返回 -1 (未找到)lRUCache.put(1, 1);// 缓存是 {1=1}lRUCache.get(1);请你设计并实现一个满足。的平均时间复杂度运行。
2025-03-13 17:37:29
421
原创 LeetCode:93. 复原 IP 地址(DFS Java)
比较简单,就是暴力dfs模拟就行。注意校验,比如范围,以及前导零,说明该位置只能为0然后继续递归。
2025-03-13 16:09:57
390
原创 LeetCode:2588. 统计美丽子数组数目(前缀和 Java)
最后都变为0,说明子数组中每个数的二进制的每一位出现1的个数为偶次。所以用异或,同时用hash存储出现的次数。
2025-03-06 16:01:20
333
原创 LeetCode:1328. 破坏回文串(贪心 Java)
n = 1,无论如何换都是回文。遍历字符串一半,如果不为a换成a。如果前半部分全为a,那么根据回文特性,该字符串全为a,只有把最后一个字符修改为小于a的第一个值b即可。
2025-03-05 19:11:20
292
原创 LeetCode:132. 分割回文串 II(DP Java)
创建一个二维布尔数组 d 来记录字符串中任意子串是否为回文串。通过双重循环初始化 d 数组,先将所有元素初始化为 true,再通过动态规划的方式更新 d 数组,判断 s[i...j] 是否为回文串。
2025-03-02 22:39:07
297
原创 LeetCode:131. 分割回文串(DP Java)
f[i][j]含义是:下标 i 到 j 字符串是否为回文。单个字母也为回文,所以初始化true。判断如果char[i] == char[j] 并且 f[i + 1][j - 1]为true,说明f [ i ] [ j ] 为回文。然后dfs遍历即可。同时用 f 剪枝。
2025-03-01 15:21:58
396
原创 LeetCode:863. 二叉树中所有距离为 K 的结点(DFSJava)
由于二叉树只有单向指向孩子的指针,所以先dfs遍历,记录一下每个节点的父节点,然后再dfs即可。注意遍历的时候不要重复遍历节点。
2025-02-26 10:51:46
320
原创 LeetCode:624. 数组列表中的最大距离(贪心Java)
暴力即可,每次取最大和最小,注意先根据当前列表中的最大值b和最小值a与ma,mi取一次res比较,而不是更新ma和mi。因为需要取不取数组中的最大和最小为答案。
2025-02-19 01:09:05
208
原创 LeetCode:80. 删除有序数组中的重复项 II(模拟 Java)
函数应返回新长度 length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。不需要考虑数组中超出新长度后面的元素。简单题,模拟一下即可,超过两相同的不移动。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。删除重复出现的元素,使得出现次数超过两次的元素。// 根据你的函数返回的长度, 它会打印出数组中。// 在函数里修改输入数组对于调用者是可见的。为什么返回数值是整数,但输出的答案是数组呢?不需要考虑数组中超出新长度后面的元素。,返回删除后数组的新长度。
2025-02-09 17:45:43
276
原创 LeetCode:63. 不同路径 II(DP Java)
简答题,dp,每格只能从上和左过来,所以直接遍历,f[i][j]表示到达i,j格子的路径个数。
2025-02-08 11:15:12
434
原创 LeetCode:59. 螺旋矩阵 II(模拟 Java)
模拟,如果下一个位置超过矩阵,转换方向即可。注意res[l][r] != 0这个判断即可,因为环绕从外向内,遇到已经填充过的数,那么就开始填充内圈即可。
2025-02-07 11:29:25
231
原创 LeetCode:47. 全排列 II(dfs Java)
dfs回溯求解,hash记录是否使用过该数字,如果已经用过跳过。重点是这个nums[i] == nums[i - 1] && !hash[i - 1],因为需要去掉重复的,因为里面有重复的数字,所以每个位置可能重复,先排序,然后判断,如果和上一个数相同,并且上一个数没有使用过的话就跳过。
2025-02-06 11:06:11
195
原创 LeetCode:2944. 购买水果需要的最少金币数(DP Java)
f [ i ] 表示选择第 i 个之前的都被购买所需的最小价值。因为题目是从1开始算的,所以这里i不是表示下标,而是表示第几个。
2025-01-24 15:42:05
262
原创 LeetCode:1561. 你可以获得的最大硬币数目(贪心 Java)
Bob每次取最小的,所以取三堆中向其中分配一个最小的堆。剩余的两个堆,在已排好的piles中,每次交替取即可。所以位置都是固定的,直接计算总和。
2025-01-22 21:24:21
210
原创 LeetCode:2218. 从栈中取出 K 个硬币的最大面值和(DP Java)
可以转化为背包问题,这里每个栈取的个数就为体积(质量),而每个栈取不同体积值不同(相加)。那么很明显就是一个分组的背包问题。
2025-01-21 22:12:46
553
原创 LeetCode:2266. 统计打字方案数(DP Java)
可以当作爬楼梯题目,有多个楼梯,且有两种楼梯。一种最多可以走3步,一种可以走4步(7,9特殊,有4个字母)。f1设置为普通的,f2设置为特殊的(7,9)初始化后,遍历,然后取每种的长度找出对应个数相乘即可。
2025-01-19 18:31:24
404
原创 LeetCode:3097. 或值至少为 K 的最短子数组 II(滑动窗口 Java)
因为|运算不可逆,所以不能像+-一样处理,l指针移动之后,需要获取当前当前子数组中的|运算值。用栈逆向存储一下,这里直接放在原数组里了。
2025-01-17 13:00:58
251
原创 LeetCode:2275. 按位与结果大于零的最长组合(位运算 Java)
题意转化:&结果大于0的最大个数,那么就一定有一位为1,遍历位数和数字,找出可以使其中一位为1的最大长度。
2025-01-13 21:15:47
395
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人