- 博客(66)
- 收藏
- 关注
原创 LeetCode刷题-top100(相交链表)
输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], skipA = 2, skipB = 3。输入:intersectVal = 2, listA = [1,9,1,2,4], listB = [3,2,4], skipA = 3, skipB = 1。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,6,1,8,4,5]。解释:相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。
2025-09-26 14:38:32
299
原创 LeetCode刷题-top100(旋转图像)
旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。使用另一个矩阵来旋转图像。
2025-09-24 16:32:10
269
原创 Java面试-线程安全篇
含义:可修饰共享变量,保证线程间可见性和禁止指令重排序。线程间可见性:通过代码示例,展示了未加时,线程修改共享变量,其他线程不可见,原因是JIT编译器优化。可通过加VM参数禁用JIT或加关键字解决,项目开发中推荐使用关键字。指令重排序与volatile关键字:
2025-09-07 12:23:14
684
原创 LeetCode刷题-top100( 矩阵置零)
代码:使用标记数组(空间复杂度 O(m+n))最优解:原地算法(空间复杂度 O(1)),则将其所在行和列的所有元素都设为。的矩阵,如果一个元素为。
2025-09-05 17:03:19
295
原创 LeetCode刷题-top100( 除自身以外数组的乘积)
根据要求代码只有一种做法,利用左右指针实现错位相乘。之中任意元素的全部前缀元素和后缀的乘积都在。之外其余各元素的乘积。时间复杂度内完成此题。
2025-09-01 17:41:09
163
原创 LeetCode刷题-top100( 轮转数组)
给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。输入: nums = [1,2,3,4,5,6,7], k = 3。输入:nums = [-1,-100,3,99], k = 2。向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]输出:[3,99,-1,-100]代码:使用队列的先进后出原理实现。最优解:使用三次反转。
2025-08-30 17:56:42
162
原创 Java面试-MySQL事务
需求背景:主从架构主要解决访问压力和读写分离问题,无法解决海量数据存储问题。当单表数据量达到1000万或单表存储超过20G,或业务数据增多、用户量上升导致出现IO瓶颈和CPU瓶颈时,需要分库分表。主要作用:分库分表可解决存储压力,增加用户连接数。分库分表策略垂直分库:以表为依据,按业务将不同表拆分到不同库中,如电商数据库按用户、订单、商品业务拆分为三个库。类似微服务架构,每个微服务对应一个数据库。特点是按业务分级管理,可在高并发时提高磁盘IO和数据量连接数。垂直分表。
2025-08-29 12:06:27
1031
原创 java面试-redis篇
模式作用:为保证Redis集群高可用,由多台Redis节点组成哨兵集群,一般至少部署三台,有监控、自动故障恢复、通知三个作用。监控机制:基于心跳机制,默认每秒向集群实例发ping命令,未响应则主观下线,超一定数量哨兵认定则客观下线,该数量可在Redis config文件设置。选主规则:判断主从断开时长、优先级、offset值、运行ID,offset值越大越优先被选。脑裂问题:因网络问题,主节点和哨兵分属不同网络分区,会选出新主节点,老主节点数据可能丢失,可修改Redis配置避免。面试回答。
2025-08-26 12:57:11
960
原创 Java实战:实时聊天应用开发(附GitHub链接)
项目介绍:项目涉及技术:时间获取方案之JDK8之前的Date API:时间获取方案之JDK8的LocalDateTime:字符串高效操作之StringBuilder:解决浮点型运算失真的BigDecimal:二、AI获取客户端界面:项目需求分析:项目为局域网类沟通软件开发,启动界面只需输入聊天昵称,进入后显示在线人数,具备群聊功能,实时更新在线人数,先实现核心群聊功能,后续可扩展私聊等功能。技术选型:涉及GUI编程技术(swing)、网络编程、面向对象设计以及Java提供的常用
2025-07-18 13:29:18
1373
原创 LeetCode刷题-top100(最小覆盖子串)
解释:最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。输入:s = "ADOBECODEBANC", t = "ABC"代码:掌握临界值统计,对字符进行增减,分两步进行,判断最大区间。解释: t 中两个字符 'a' 均应包含在 s 的子串中,输入: s = "a", t = "aa"因此没有符合条件的子字符串,返回空字符串。输入:s = "a", t = "a"解释:整个字符串 s 是最小覆盖子串。所有字符的子串,则返回空字符串。所有字符的最小子串。
2025-07-06 18:00:18
271
原创 LeetCode刷题-top100(滑动窗口最大值)
的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3。最优解:双端队列存储元素索引来实现存储最大值和是否在滑动窗口内。输入:nums = [1], k = 1。滑动窗口每次只向右移动一位。输出:[3,3,5,5,6,7]滑动窗口的位置 最大值。代码:循环遍历,超时。
2025-07-05 20:13:41
278
原创 LeetCode刷题-top100(和为 K 的子数组)
最优解:哈希表+前缀和(前缀和总和是连续的所以存在pre-k,就一定有对应的连续数组)输入:nums = [1,1,1], k = 2。输入:nums = [1,2,3], k = 3。代码:双指针+两次循环,没有超时,差点。子数组是数组中元素的连续非空序列。
2025-06-27 00:02:12
285
原创 LeetCode刷题-top100(找到字符串中所有字母异位词)
起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。输入: s = "cbaebabacd", p = "abc"输入: s = "abab", p = "ab"最优解:滑动+数值记录比对。输出: [0,1,2]
2025-06-25 23:06:12
203
原创 LeetCode刷题-top100(无重复字符的最长子串)
代码:哈希表+滑动(保证出现重复元素在滑动窗口保证有一个,则可以保证最大长度)请注意,你的答案必须是 子串 的长度,"pwke"是一个子序列,不是子串。解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。解释: 因为无重复字符的最长子串是"abc",所以其长度为 3。解释: 因为无重复字符的最长子串是"b",所以其长度为 1。输入: s = "abcabcbb",请你找出其中不含有重复字符的。输入: s = "pwwkew"输入: s = "bbbbb"代码:集合+滑动窗口。
2025-06-24 23:23:02
195
原创 基于多表操作的员工管理系统开发
通过三层架构设计,将业务逻辑、数据访问和界面交互解耦,使系统结构清晰、易于维护。多表操作通过外键关联和连接查询实现,分页与条件查询通过PageHelper和动态SQL优化,最终实现高效、灵活的员工管理功能。开发过程中需注意代码规范、性能优化及全面测试,确保系统稳定可靠。:实现员工信息管理功能,包括多表关联查询、分页及条件筛选。:处理业务逻辑,调用DAO层,封装分页数据。:接收前端请求,调用服务层,返回响应结果。:定义数据库操作接口,编写SQL语句。
2025-06-24 18:48:53
841
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅