- 博客(554)
- 收藏
- 关注
原创 mysql_day03总结
本文摘要: 本课程系统介绍了MySQL运维相关内容,主要包括日志管理、主从复制、分库分表和读写分离四大模块。日志管理部分详细讲解了错误日志、二进制日志、查询日志和慢查询日志的作用及配置;主从复制章节阐述了原理、配置步骤及常见问题;分库分表部分通过MyCat中间件实现,讲解了垂直/水平拆分方式及多种分片算法;读写分离部分涵盖一主一从和双主双从架构搭建。课程通过理论讲解与实践操作结合,帮助掌握MySQL高可用架构设计与实现,解决大数据量场景下的性能瓶颈问题。(149字)
2025-12-25 12:21:45
919
原创 mysql_day2总结
是查询语句现在二级索引的叶子节点处找到id值,然后拿着这个id值去聚集索引里面查询这个行数据就叫回表查询联合索引(也叫复合索引)是数据库中基于多个字段组合创建的索引,而非单一字段。它可以理解为把多个字段的值按顺序拼接后生成的索引结构,用于加速多字段组合条件的查询。子查询中,id是主键(默认会有主键索引),而查询字段只有id,此时主键索引就是覆盖索引(因为索引本身包含了查询所需的所有字段)。下节课讲2视图的作用是什么?为什么要用视图?下节课会讲举例;
2025-12-23 23:12:27
820
原创 总结一下找素数的三种方法
本文介绍了三种素数筛选算法:试除法、埃氏筛和欧拉筛。试除法通过逐个检查2到√x范围内的数来判断素数;埃氏筛利用素数标记其倍数来筛选非素数;欧拉筛则进一步优化,避免重复标记,使用数组或ArrayList存储素数。三种方法均以0~300为例实现,并统计素数个数。试除法简单但效率较低,埃氏筛和欧拉筛效率更高,其中欧拉筛最优。代码采用Java实现,展示了不同算法的具体应用。
2025-12-18 09:37:20
302
原创 mysql_day01
本文系统介绍了MySQL数据库的基础知识,包括安装配置、SQL语法、数据模型和核心操作。主要内容涵盖:数据库与表的基本操作(创建、查询、修改、删除);数据类型的选择与应用(整数、小数、字符串、日期);DML数据操作(增删改)和DQL数据查询(基础查询、条件查询、分组排序等);约束机制(主键、外键)保证数据完整性;多表查询方法(内连接、外连接、子查询);事务的ACID特性和隔离级别;用户权限管理及常用函数使用。重点强调表设计规范、查询优化和事务控制,为MySQL进阶学习奠定基础。通过实际案例帮助理解理论知识,
2025-12-18 09:10:10
839
原创 蓝桥云课-5. 花灯调整【算法赛】
本文解析了蓝桥云课"花灯调整"算法赛题的解题思路。通过分析问题本质,发现关键在于统计每盏灯被翻转次数的奇偶性是否与目标状态匹配。采用后缀和技巧高效计算每盏灯的翻转次数:从后往前遍历,累计每个位置被选中的次数。代码实现分为输入处理、后缀和计算、奇偶性验证三个模块,时间复杂度O(n)。该解法适用于类似"操作叠加状态判定"问题,核心在于利用后缀和统计操作影响范围,并通过奇偶性验证状态匹配。掌握这种思路可解决多种区间操作类算法问题。
2025-12-16 12:55:47
619
原创 蓝桥云课-3. 蓝小骑【算法赛】
本文摘要:文章介绍了蓝桥云课算法赛中的电动车价格选择问题,通过二进制枚举方法求解最优解。解题思路是利用二进制枚举(0-7)表示3种电动车价格的所有组合可能,计算每种组合的总费用,保留最小值。关键点包括处理整数溢出(使用long类型)和剩余需求用基础价格补充。代码展示了Java实现,包含输入处理、枚举计算和结果比较。问题部分指出二进制枚举的作用是穷举所有购买方案,与题目关联在于全面比较所有可能的组合成本。总结强调该方法能有效找出最低成本方案。
2025-12-16 11:46:19
1047
原创 343. 整数拆分
本文介绍了LeetCode 343题 ;整数拆分 ;的动态规划解法。通过定义dp[i]表示整数i拆分后的最大乘积,采用双层循环结构:外层遍历目标数i(3到n),内层遍历拆分点j(1到i/2)。状态转移方程为dp[i] = max(j*(i-j), j*dp[i-j]),既考虑拆分为两个数的情况,也考虑继续拆分的情况。初始化dp[2]=1后,逐步填充dp数组,最终返回dp[n]作为结果。文章还通过n=10的实例验证了算法正确性,并指出可通过数学规律(尽可能拆分为3)进一步优化。该解法展示了动态
2025-12-05 11:16:24
713
原创 63. 不同路径 II
本文介绍了LeetCode 63题"不同路径II"的动态规划解法。题目要求在存在障碍物的网格中,计算从左上角到右下角的不同路径数。核心思路是:定义dp[i][j]为到达(i,j)位置的路径数,状态转移方程为dp[i][j] = dp[i-1][j] + dp[i][j-1](无障碍时)。初始化第一行和第一列后,通过双层循环填充dp数组。文章详细解析了代码实现步骤,包括边界处理,并通过示例验证了算法正确性。最后提出可将空间复杂度从O(mn)优化到O(n)的方法。该解法是网格路径问题的典型动
2025-12-05 11:04:00
965
原创 蓝桥云课—14. 偶串
本文介绍了一个判断字符串是否为"偶串"的Java解决方案。"偶串"指字符串中每个字符的出现次数均为偶数。算法使用HashMap统计字符出现次数,然后遍历检查各字符次数是否为偶数。若存在奇数次数字符则输出"NO",否则输出"YES"。文章详细解析了代码实现,包括输入处理、字符统计、奇偶性检查等关键步骤,并讨论了边界情况和优化方向。该方案展示了"统计-校验"模式的典型应用,适用于处理类似的字符频率统计问题。
2025-12-04 19:24:32
877
原创 蓝桥云课-13. 定时任务
摘要:本文分析了一个Java程序,用于解析SimpleCron表达式并计算2023年定时任务执行次数。程序首先将5个时间域(秒、分、时、日、月)转换为对应的整数集合,支持通配符(*)、枚举(,)和范围(-)三种特殊格式。然后通过双层循环遍历合法月份和日期,结合时分秒的组合数统计总次数。代码采用数组套集合的结构存储动态取值,通过组合数学原理高效计算结果,考虑了2023年各月的实际天数,确保日期合法性。文中还讨论了代码的优缺点和改进建议。
2025-12-04 19:07:15
808
原创 蓝桥云课-跑步计划
本文解析了蓝桥杯国赛题目"跑步计划 ;的解题思路。题目要求根据2023年每天的日期或星期中是否包含数字1来计算全年跑步总里程。解题关键在于:1)确定1月1日为星期日;2)遍历全年日期;3)判断月、日或星期是否含1。代码使用数组记录每月天数,通过循环遍历日期,用judge方法检查数字是否含1,最终统计满足条件的天数并计算总里程。文章详细分析了日期处理、星期循环、条件判断等核心逻辑,并指出了常见错误点,如星期初始值错误、闰年判断缺失等。最终得出2023年跑步总里程为1333千米的结论。
2025-12-04 12:43:18
541
原创 蓝桥云课-小蓝做题
本文分析了蓝桥云课"小蓝做题"算法题的解题思路与代码实现。该题要求计算给定数的质因数和,再求其与原数的最小公倍数,判断是否等于目标值。代码采用模块化设计,包含质因数和计算(getSum)、最大公约数计算(gcd)和主逻辑处理(slove)三个核心模块。关键点在于:1)质因数分解通过从小到大试除确保只获取质因数;2)利用欧几里得算法高效计算GCD;3)通过公式LCM=(a*b)/GCD计算结果。文章详细解释了算法原理,验证了正确性,并讨论了优化方向,是数论基础算法的典型应用案例。
2025-12-01 19:50:02
731
原创 蓝桥云课-小蓝的决议
题目要求判断在给定n和x的情况下,是否满足x*2≥n。为了避免整数溢出,采用(n+1)/2≤x的计算方法。对于偶数n,(n+1)/2与n/2结果相同;对于奇数n,该方法实现了向上取整。代码通过输入测试用例,对每个用例进行判断:若x为0直接输出"NO",否则比较(n+1)/2与x的大小关系,输出相应结果。该方法有效避免了乘法溢出问题,适用于大范围数据。
2025-12-01 11:40:19
811
原创 SSM_day05
SpringBoot开发实战全解析:从入门到整合 本文系统介绍了SpringBoot的核心开发流程,包含以下关键内容: 工程创建与启动:详解三种创建方式(IDEA/官网/Maven)及启动类配置 配置文件管理: 三种格式对比(properties/yml/yaml)及优先级规则 YAML数据读取的三种方式(@Value/@ConfigurationProperties/Environment) 多环境开发: Profile机制实现环境隔离 三种激活方式(配置文件/命令行/环境变量) 常见问题解决方案 框架整
2025-11-30 15:46:01
602
原创 4. 拉马车
本文介绍了一个模拟纸牌游戏"拉马车;的Java解决方案。游戏规则为:双方轮流从手牌头部出牌到桌面牌堆,若打出的牌在桌面已有,则将该牌及之后的牌收回(按反向顺序加入手牌尾部)。代码使用StringBuilder高效处理手牌和桌面牌堆的增删操作,通过循环模拟游戏流程,包括出牌、收牌和胜负判定。关键点在于准确实现收牌时的牌序反转和桌面牌堆管理。该方案针对小规模输入高效可靠,但未处理可能的无限循环情况。
2025-11-30 14:31:17
848
原创 3. 分巧克力
本文通过二分查找解决"分巧克力"问题,在给定N块巧克力和K个小朋友的情况下,找到能切出K块相同正方形巧克力的最大边长。算法核心是利用二分法在1到1e5范围内搜索可行边长,每次计算当前边长能切出的总块数,通过比较块数与K的关系调整搜索区间。该方法将时间复杂度从O(1e10)优化至O(N・log(max_len)),约2e6次运算,保证了效率。关键点在于理解二分法适用于这种"最大化最小值"问题,以及正确实现区间调整逻辑。同类问题如资源分配等均可采用类似思路解决。
2025-11-30 13:34:27
1029
原创 20. 小桥的蓝桥四季园艺挑战
摘要:本文分析了蓝桥杯"小桥的蓝桥四季园艺挑战"问题,提出了一种基于贪心算法的解决方案。问题要求将4种花草组合成套装,每个套装至少包含两种不同难度指数的花草。通过统计难度种类数和数量分布,代码采用分类讨论策略:当难度种类≥3时输出2,种类为1时输出0,种类为2时根据排序后的数量分布判断输出1或2。该方法时间复杂度为O(T*4log4),能高效处理输入数据。文章还讨论了代码的优缺点,并建议了优化方向,指出该问题本质是多资源配对问题,可推广到类似题型如糖果分配和任务组队问题。
2025-11-30 12:45:23
673
原创 SSM_day04
本文介绍了Maven分模块开发与多模块管理的核心概念。主要内容包括:分模块开发的意义与设计流程,通过install打包实现模块间依赖;依赖传递机制及可选依赖与排除依赖的区别;聚合与继承的差异;属性管理、多环境配置及版本控制;私服的基本使用,包括仓库分类、访问配置和资源上传下载。文章系统梳理了Maven项目管理的核心功能,为构建复杂项目提供了完整的解决方案。掌握这些知识点可有效提升项目模块化开发效率。
2025-11-30 10:48:23
856
原创 蓝桥云课-赢球票
摘要:本文分析了蓝桥云课"赢球票"问题的解题思路与Java实现。该问题要求从环形卡片序列中通过特定计数规则收集卡片,计算最大数字和。解题采用暴力模拟法:遍历每个起始位置,复制原始序列,模拟收集过程(匹配则收集并重置计数,否则继续),维护环形索引。关键点包括ArrayList的动态修改、环形逻辑处理(索引重置)和终止条件控制。时间复杂度O(N³)在N≤100时可行。文章详细解析了代码结构、核心逻辑及常见错误,展示了暴力模拟在小规模规则问题中的实用性。
2025-11-28 15:49:17
732
原创 蓝桥云课-14. 卖货
摘要:本文探讨了基于栈和动态规划解决括号匹配类问题的算法。通过将进货/出货问题抽象为1/-1序列,利用栈记录左括号位置,当遇到右括号时弹出栈顶元素计算合法子序列数。关键点在于a[i] = a[st.pop()-1] + 1,其中+1表示新匹配的基础子序列,a[pos-1]表示可拼接的已有子序列数。该算法时间复杂度O(n),空间复杂度O(n),相比暴力法显著提升了效率。文章通过示例详细解析了算法逻辑,并对比了其他解法,展示了数据结构与算法思想组合的应用价值。
2025-11-28 12:34:56
853
原创 32. 最长有效括号
本文介绍了使用动态规划解决最长有效括号问题的方法。关键思路是定义dp[i]表示以第i个字符结尾的最长有效括号长度。当遇到右括号时,分两种情况处理:1)与前一个左括号直接匹配时,dp[i]=dp[i-2]+2;2)与前一个有效子串前的左括号间接匹配时,dp[i]=dp[i-1]+2+dp[i-dp[i-1]-2]。通过遍历字符串并维护最大值res,最终得到最长有效括号长度。该方法时间复杂度O(n),空间复杂度O(n),是解决括号匹配问题的经典动态规划范式。
2025-11-28 12:23:39
593
原创 vue_day06
本文系统讲解了Vue路由和工程化实践的核心知识。主要内容包括:路由模块封装实现解耦复用;router-link的高亮配置和类名自定义;声明式导航的两种传参方式(查询参数和动态路由)及其区别;编程式导航的实现方法;二级路由配置规范;组件缓存机制及组件名作用;基于VueCli的项目创建流程;ESLint代码规范的自动/手动修正方法。通过理论结合案例的方式,帮助开发者掌握Vue路由的进阶用法和工程化规范,提升项目开发效率和代码质量。
2025-11-24 22:32:55
79
原创 vue_day05
本文系统总结了Vue.js核心知识点:1. 自定义指令:详解指令生命周期钩子(bind/inserted/update等)、全局/局部注册方式及v-loading指令封装技巧;2. 插槽机制:包括默认插槽、具名插槽和作用域插槽的使用场景与实现原理;3. 组件通信:重点解析v-model实现原理及$nextTick的异步DOM更新机制;4. 路由系统:介绍SPA路由配置和router-view工作原理;5. 组件设计:区分页面组件与复用组件的设计原则与目录规范。全文结合具体应用场景,深入剖析Vue的组件化开发
2025-11-23 19:55:49
1028
原创 Redis_day01
本文系统介绍了Redis从基础到Java客户端开发的全栈知识体系。主要内容包括:Redis基础认知与环境搭建,详细讲解了NoSQL概念、Redis特性及Linux环境安装;Redis核心数据结构与命令,涵盖String、Hash、List、Set、SortedSet五种数据类型的操作命令及适用场景;Java客户端实战部分,对比了Jedis、Lettuce和SpringDataRedis三种客户端,重点演示了SpringDataRedis的使用方法及序列化配置,文章通过大量代码示例,帮助开发者快速掌握Redi
2025-11-21 11:24:04
47
原创 SSM_day03
本文介绍了SpringMVC的核心概念和使用方法,包括:1)SpringMVC工作流程和配置要点;2)请求处理方式(GET/POST/JSON参数传递);3)RESTful风格开发与优化技巧;4)SSM整合配置(含事务管理和异常处理);5)拦截器使用与链式配置。重点讲解了前后端交互中的数据协议定义、静态资源处理、路径参数与变量的区别,以及通过@RestController等注解简化开发的方法。最后提及了SSM整合中的DAO层作用、事务管理和异常处理机制。
2025-11-19 21:17:45
569
原创 SpringCloud_day03
本文摘要: 本文系统介绍了微服务架构的核心概念与实践方法。主要内容包括:微服务与单体架构的对比分析、使用SpringCloud进行微服务开发、黑马商城的微服务拆分原则与步骤(从下往上拆分)、服务治理中的注册中心(Nacos)搭建与使用、远程调用实现(RestTemplate和OpenFeign)以及负载均衡配置。特别强调了微服务拆分的最佳实践,包括Maven继承与聚合、依赖注入方式选择、Feign接口的抽取封装等关键技术点。最后通过商品服务、购物车服务等拆分案例,详细演示了微服务开发中的常见问题解决方案,为
2025-11-19 09:05:48
718
2
原创 225. 用队列实现栈
【摘要】该题使用两个队列实现栈功能,主队列que1存储元素,que2作为辅助队列。每次push操作时,先将新元素加入que2,再将que1所有元素移入que2,最后交换两个队列引用。这样保证后入先出的栈特性,pop和top操作直接对que1进行。时间复杂度:push为O(n),其他操作为O(1)。核心思想是通过队列间的元素转移模拟栈行为。(字数:148)
2025-11-13 20:47:19
664
原创 232. 用栈实现队列
本文通过两个栈实现队列功能,利用栈的翻转特性将"后进先出"转换为"先进先出"。输入栈(st1)负责接收新元素,输出栈(st2)负责弹出元素;当st2为空时,将st1元素全部倒入st2实现顺序翻转。关键操作包括:push时优先存入st1,pop时若st2为空则转移元素再弹出,peek直接返回st2栈顶。该实现保证了push和peek操作的时间复杂度为O(1),pop的均摊复杂度也为O(1),是算法面试中经典的栈队列转换问题。
2025-11-13 20:07:07
1052
原创 120. 三角形最小路径和
本文详细解析了LeetCode 120题"三角形最小路径和"的动态规划解法。首先分析了题目特点,指出贪心算法不可行,必须使用动态规划。文章提供了二维和一维两种DP实现代码,并详细解释了状态转移方程和边界条件处理。特别分析了何时使用DP(具有最优子结构和重叠子问题特性)以及何时能压缩空间维度(当状态更新只依赖特定行时)。最后总结了DP解题步骤:定义状态、确定转移方程、初始化、计算所有状态和返回结果。通过这个典型案例,帮助读者深入理解动态规划的核心思想和实现技巧。
2025-11-11 16:41:26
592
原创 622. 设计循环队列
本文详细解析了LeetCode 622题;设计循环队列的解决方案。循环队列通过数组和双指针(front/end)实现循环存储,解决了普通队列的"假溢出"问题。关键点包括:使用数组大小k+1(浪费一个空间区分满/空状态),入队时移动end指针(end+1)%size,出队时移动front指针(front+1)%size。所有操作(入队、出队、获取头尾元素、判空判满)的时间复杂度均为O(1),空间复杂度为O(k)。循环队列在网络缓冲、任务调度等场景有广泛应用。文章通过代
2025-11-11 15:15:18
776
原创 Java面经_11.10
本文围绕 Java 核心编程的网络编程、IO 流、线程与并发三大模块展开,系统梳理了 BIO/NIO/AIO 的差异与选型、IO 流的分类与应用、线程安全的核心机制(ThreadLocal、锁、线程池等)。
2025-11-10 21:00:50
564
原创 vue_day04
本文全面解析Vue.js核心知识体系,重点涵盖以下内容: 组件通信机制: 父子组件通过props/$emit实现数据传递 非父子组件采用EventBus事件总线或provide/inject跨层级通信 数据绑定关键点: v-model双向绑定原理及应用场景 .sync修饰符简化父子组件状态同步 props的响应式特性与数据验证规则 核心特性详解: ref/$refs操作DOM元素和组件实例 Vue异步更新机制与$nextTick的使用场景 数据持久化存储实现方案 开发实践: 组件化开发规范与最佳实践 表单处
2025-11-07 23:25:20
1774
原创 160. 相交链表
本文介绍了两种解决链表相交问题的方法:哈希表法和双指针法。哈希表法通过存储节点地址来查找交点,而双指针法则巧妙地利用路径对齐原理:两个指针分别遍历两个链表后交换遍历,使总路径长度相同,最终在交点处相遇或同时到达null。双指针法具有O(m+n)时间复杂度和O(1)空间复杂度,比哈希表法更高效简洁。文章详细解析了算法原理、代码实现,并通过测试用例验证了正确性,展示了该技巧在链表问题中的普适性和巧妙性。
2025-11-07 12:19:13
554
原创 237. 删除链表中的节点
摘要:本文详细解析LeetCode 237题"删除链表中的节点"的巧妙解法。当无法访问链表头节点和前驱节点时,采用"移花接木"策略:用下一节点的值覆盖当前节点,然后跳过下一节点。文章剖析了算法原理(O(1)时间复杂度)、代码实现、约束条件(节点非尾节点且值唯一),并通过示例验证。这种创新解法突破了传统链表删除的思路局限,展示了在特殊约束下的高效解题技巧。
2025-11-07 12:01:18
1034
原创 876. 链表的中间结点
本文介绍了使用快慢指针算法解决「876.链表的中间结点」问题。通过设置两个指针(快指针每次走两步,慢指针每次走一步),当快指针到达链表末尾时,慢指针刚好位于中间位置。这种方法只需一次遍历即可找到中间结点,时间复杂度为O(n),空间复杂度为O(1)。文章详细解析了算法原理、代码实现,并通过示例验证正确性,最后讨论了算法变体和其他应用场景。
2025-11-07 11:47:10
868
原创 SpringCloud_day02
摘要:本文系统介绍了Docker从安装到项目部署的完整流程。首先详细说明Docker的安装步骤,包括卸载旧版本、安装依赖、添加仓库和配置镜像加速等。然后讲解MySQL容器部署、Docker常用命令和网络配置等核心功能,重点分析了数据卷挂载的两种方式及其应用场景。通过Dockerfile语法讲解和自定义镜像构建,展示了容器化部署的灵活性。最后演示了Java后端和前端项目的实际部署流程,并介绍了Docker Compose在多容器编排中的应用。文章为开发者提供了从Docker基础到项目实战的完整学习路径,是掌握
2025-11-07 11:32:55
859
原创 23. 合并 K 个升序链表
这篇题解提供了合并K个升序链表的算法思路:将数组第一个链表作为基础,逐个与其他链表合并。使用dummy节点简化操作,通过hebing方法实现两两链表的有序合并。时间复杂度为O(NK),其中N是链表平均长度,K是链表数量。空间复杂度O(1)。虽然简单直观,但效率低于优先队列或分治等优化方法。
2025-11-06 19:01:05
630
原创 82. 删除排序链表中的重复元素 II
本文介绍了一种删除排序链表中所有重复元素的算法。通过设置哑节点作为辅助头节点,使用pre和cur双指针遍历链表。当发现重复节点时,跳过所有重复项,将前驱节点直接指向非重复节点;否则正常移动指针。该方法时间复杂度为O(n),空间复杂度O(1),能有效处理各种重复情况,包括删除头节点的情况。关键点在于利用哑节点统一处理逻辑,并通过临时next节点判断重复范围。
2025-11-06 17:22:29
578
原创 83. 删除排序链表中的重复元素
本文解析LeetCode 83题《删除排序链表中的重复元素》,针对有序链表的去重问题提出了高效的解决方案。算法利用链表有序特性,通过单次遍历和指针跳跃操作(外层循环定位当前节点,内层循环跳过重复节点)实现去重,时间复杂度O(n),空间复杂度O(1)。文章详细解析了代码逻辑,包括虚拟头节点的使用、指针操作细节,并通过多个测试用例验证算法正确性。该解法展现了如何利用数据结构特性优化算法,是链表基础操作的经典案例,为处理更复杂链表问题奠定基础。
2025-11-06 17:11:47
1052
原创 34. 在排序数组中查找元素的第一个和最后一个位置
摘要:该文提供了在排序数组中查找目标值第一个和最后一个位置的算法解决方案。通过二分查找的lowerbound方法定位目标值的起始位置,再通过查找target+1的下界减1确定结束位置。若未找到目标值则返回[-1,-1]。算法时间复杂度为O(log n),空间复杂度为O(1),高效地解决了问题。
2025-11-06 16:40:01
1002
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅