- 博客(149)
- 收藏
- 关注
原创 142. 环形链表 II
这意味着从 head 到相遇点的距离 a+b 是环周长的整数倍。快指针走了 a + b + nL。慢指针走了 a + b。
2026-08-23 16:05:43
28
原创 82. 删除排序链表中的重复元素 II
摘要: 本题要求删除排序链表中所有重复元素(保留单一元素)。采用双指针+虚拟头节点方法: 创建虚拟头节点dummy处理边界情况; 使用prev标记已处理链表的尾部,curr遍历链表; 当curr发现重复值时,内层循环跳过所有重复节点,通过prev.next直接链接到非重复节点; 时间复杂度O(n)(每个节点最多访问两次),空间复杂度
2026-08-23 14:02:33
354
原创 Flutter拖拽批量选择drag_selectable_listview
Flutter拖拽批量选择ListView组件开发指南 本文介绍了一个解决Flutter中常见但官方未支持的交互需求——拖拽批量选择列表项的通用组件DragSelectableListView。该组件支持拖拽批量选择、自动滚动、自定义Checkbox等功能,兼容ListView.builder的性能优化特性。 核心设计思路包括: 通过限定拖拽区域解决手势冲突问题 采用区间计算算法实现高效批量选择 内置自动滚动功能提升用户体验 使用受控组件设计增强灵活性 组件已开源发布,适用于文件管理器、图片选择器等需要批量
2026-05-07 12:07:43
213
原创 leetcode 739. 每日温度
本文提出使用单调递减栈解决每日温度问题,寻找每个温度之后第一个更高温度的天数差。核心思路是遍历温度数组,维护栈内温度索引保持单调递减。当遇到更高温度时弹出栈顶并计算天数差,最后将当前索引入栈。Java实现中通过双端队列模拟栈操作,时间复杂度O(n),空间复杂度O(n)。该方法高效处理了温度比较问题,未匹配元素结果默认为0。
2025-12-22 13:17:55
210
原创 leetcode 239. 滑动窗口最大值
每次尝试从优先队列(大根堆)中取出最大值(若堆顶元素的下标小于当前滑动窗口左端点时,则丢弃该元素)。时间复杂度:O(nlogn)时间复杂度:O(nlogn)空间复杂度:O(n)空间复杂度:O(n)
2025-09-20 21:02:43
291
原创 为什么你的Spring Boot配置没有IDE提示?Configuration Processor来救场
Spring Boot配置处理器(spring-boot-configuration-processor)是用于增强@ConfigurationProperties开发体验的工具。它会在编译时自动生成spring-configuration-metadata.json元数据文件,为IDE提供配置属性的智能提示(包括属性名、类型和默认值)。该工具特别适用于自定义配置的场景,通过注解定义配置类后,IDE能自动补全application.yml/properties中的配置项。作为开发依赖,它采用<opti
2025-08-10 15:52:45
445
原创 Reward - 拓扑排序
题目链接:https://vjudge.net/problem/HDU-2647。逆拓扑问题,反向建图,广度优先搜索。
2024-03-14 11:30:31
412
原创 链式前向星
前向星(Forward Star)是一种用于表示稀疏图的数据结构,特别适用于存储有向图和无向图的邻接表。前向星的基本思想是将图的边按照起始节点进行分组,每个节点对应一个链表,链表中存储以该节点为起始节点的所有边的终止节点。
2024-03-04 11:56:32
356
原创 背包问题专题-动态规划
求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。每件物品的体积是 vij,价值是wij,其中 i 是组号,j 是组内编号。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。
2023-06-07 22:07:49
905
1
原创 leetcode 2517. 礼盒的最大甜蜜度(二分查找 + 贪心)
的思想体现在:由于元素已经排好序,即从小到大遍历 price 的元素,如果当前糖果的价格比上一个选中的糖果的价格的差大于 mid,则选中当前糖果,否则继续考察下一个糖果。当甜蜜度过大,不足以组出k类糖果;当甜蜜度过大,足以组出k类糖果,但此甜蜜度不是最大值。给你一个正整数数组 price ,其中 price[i] 表示第 i 类糖果的价格,另给你一个正整数 k。礼盒的 甜蜜度 是礼盒中任意两种糖果 价格 绝对差的最小值。返回礼盒的 最大 甜蜜度。,寻找最大符合条件的甜蜜度。
2023-06-01 16:16:47
243
原创 Just a Hook HDU - 1698 线段树(懒标记)
给定 N, Q,代表序列有 N 个元素,他们的初始值皆是 1。接下來 Q 行,每行有三个数字 X, Y, Z,代表将序列中 X 到 Y 的元素值改成 Z。多組测试,第一个数字 T 代表有几组测试。对于每一组测试,第一行会输入一个数字 N (1
2023-05-27 21:29:16
203
原创 HDU- 1166 敌兵布阵 - 线段树
如果Lily把某盆花照料的好的话,这盆花的美观值就会上升,如果照料的不好的话,这盆花的美观值就会下降。有时,Lily想知道某段连续的花的美观值之和是多少,但是,Lily的算术不是很好,你能快速地告诉她结果吗?(2)Sub i j, i和j为正整数,表示第i盆花被照料的不好,美观值减少j (j
2023-05-27 21:06:38
1033
原创 leetcode 56. 合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。先根据左端点对数组排序,然后迭代合并区间。时间复杂度O(nlogn)
2023-05-25 18:40:46
93
原创 洛谷 P1049 装箱问题- 01背包-动态规划
个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。行,每行有一个正整数,表示第。个物品,每个物品有一个体积。
2023-05-22 22:31:34
553
原创 Find a multiple (POJ-2356)
求前缀和 sum[i] = sum[0] + sum[1] + …sum[1] % n, sum[2] % n …sum[n] % n 中。则 (sum[i] - sum[j] ) % n == 0。记为 sum[i] % n == sum[j] % n。即 [i + 1, j] 元素之和 可以被 n整除。否则 sum[i] % n!首先前缀和中有能整除的直接输出。必然有两个相等的 (抽屉原理)
2023-04-19 14:10:06
199
原创 22年第十三届A组省赛真题-求和
给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即 S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + an-2 · an-1 + an-2 · an + an-1 · an.
2023-03-15 20:34:27
119
原创 回文日期 -蓝桥杯-暴力
也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。给定一个 8 位数的日期,请你计算该日期之后下一个回文日期和下一个 ABABBABA 型的回文日期各是哪一天。第一行表示下一个回文日期,第二行表示下一个 ABABBABA 型的回文日期。
2023-03-13 17:42:31
179
原创 leetcode 1584. 连接所有点的最小费用 -最小生成树
Kruskal算法的时间复杂度为O(ElogE), Kruskal算法适用于边稀疏而顶点较多的图。Prim算法时间复杂度O(|V|^2), 适用于边稠密图 (|E|大)
2022-08-06 12:28:39
146
原创 JWT原理
Java web token(JWT),通过以json形式作为web应用中的令牌,用于在各方之间安全地作为json对象传输。组成部分header头部令牌类型和签名算法,使用Base64编码{ "alg": "HS256", "typ": "JWT"}Payload负载jwt的数据载荷,使用Base64编码{ "exp": 1653580861, "iss": "server-test", "name": "lsz"}Signature签名使用he.
2022-05-27 00:18:48
234
原创 leetcode 数组的度
697. 数组的度虽然是easy题,但其实还是有难度的【easy中的hard】暴力超时func findShortestSubArray(nums []int) int { gMap := make(map[int]int) maxCnt := 0 n := len(nums) for _, v := range nums { gMap[v]++ maxCnt = max(maxCnt, gMap[v]) } ans :=
2022-05-26 19:40:38
115
原创 地址解析协议ARP
文章目录概念工作过程四种情况概念网络层使用的IP地址,但链路层传输数据帧时,最终还是必须使用MAC地址.[有了目的mac地址,链路层就知道下一跳走哪]ARP(address resolution protocol) 的作用就是:用网络层使用的IP地址,解析出数据链路层使用的MAC地址。ARP高速缓存(ARP cache):每一台主机设有一个ARP高速缓存,里面存放有本局域网上的各个主机和路由器的IP地址到MAC地址的映射表. ARP cache每一个地址项目都设置生存时间。凡超过生存时间的项目就从高
2022-05-25 22:33:10
821
1
原创 缓存穿透&击穿&雪崩
文章目录1. 缓存穿透2. 缓存击穿3. 雪崩问题1. 缓存穿透缓存穿透:缓存和数据库中都没有的数据,导致所有的请求落在数据库上,造成数据库短时间内承受大量请求而崩掉。解决方案:缓存空对象布隆过滤器拦截用户合法性校验2. 缓存击穿redis中某个key过期了或根本没有,大量访问使用该key,数据库访问压力瞬时增加解决方案:实时调整,使key不过期加分布式锁第一个请求的线程可以拿到锁,拿到锁的线程查询到了数据之后设置缓存,其他的线程获取锁失败会等待50ms然后重新到缓存取数
2022-05-20 21:47:56
181
原创 MySQL面试题
SQL执行顺序手写SELECT DISTINCT <select_list>FROM <left_table> <join_type>JOIN <right_table> ON <join_condition>WHERE <where_condition>GROUP BY <group_by_list>HAVING <having_condition>ORDER BY <order_
2022-05-18 00:46:22
144
原创 leetcode 相交链表
160. 相交链表哈希表func getIntersectionNode(headA, headB *ListNode) *ListNode { hmap := make(map[*ListNode]struct{}) for headA != nil { hmap[headA] = struct{}{} headA = headA.Next } for headB != nil { if _,ok := hmap[head
2022-05-16 23:52:58
165
原创 缓存一致性问题
文章目录场景可能的方案更新缓存和更新数据库删除缓存和更新数据库推荐方案场景系统使用redis等缓存来提高读性能读请求先读缓存,如果缓存不存在,则从数据库读取,并重建缓存; 同时,写入缓存中的数据,都设置失效时间写请求修改一条数据时,不仅要更新数据库,也要连带缓存一起更新。缓存一致性的重点可能的方案一下几种方案在并发和异常的情况下都会存在不一致问题更新缓存和更新数据库先更新缓存,后更新数据库先更新数据库,后更新缓存缓存利用率低:每次数据发生变更,都「无脑」更新缓存,但是缓存
2022-05-16 12:28:01
169
原创 Go性能调优
文章目录简介排查实战排查cpu排查堆内存排查协程排查互斥锁排查阻塞简介性能调优原则要依靠数据不是猜测要定位最大瓶颈而不是细枝末节不要过早优化不要过度优化性能分析工具pprofpprof是用于可视化和分析性能 分析数据的工具排查实战引入 _ "net/http/pprof"go func() { if err := http.ListenAndServe(":6060", nil); err != nil { log.Fatal(err) }
2022-05-15 22:33:51
384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅