logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

LeetCode经典算法面试题 #45:跳跃游戏II(贪心法、动态规划、BFS等多种实现方案详解)

本文探讨了跳跃游戏II问题,即在给定数组中找到从起点到终点的最小跳跃次数。主要分析了四种解法:1)贪心算法(边界跳跃法),通过维护当前步数边界和下一步最远位置实现O(n)时间复杂度的最优解;2)动态规划(自顶向下记忆化),递归计算最小步数,但效率较低;3)动态规划(自底向上),递推求解但可能面临O(n²)复杂度;4)BFS方法,将问题转化为图的最短路径搜索。其中贪心算法因其高效简洁成为最佳选择,而

文章图片
#算法#leetcode#贪心算法 +1
LeetCode经典算法面试题 #41:缺失的第一个正数(位置交换法、标记法等四种实现方案详细解析)

本文介绍了LeetCode 41题"缺失的第一个正数"的多种解法。题目要求在未排序整数数组中找到缺失的最小正整数,要求时间复杂度O(n)且空间复杂度O(1)。主要解法包括: 位置交换法:通过原地交换将数字放到正确位置 标记法:利用数组下标和负数标记存在数字 集合哈希法(不符合空间要求):使用HashSet存储数字 位图法:适用于小范围情况 前两种方法满足题目要求,通过巧妙利用原

文章图片
#算法
LeetCode经典算法面试题 #53:最大子数组和(动态规划、分治法等多种实现方案详细解析)

本文介绍了求解最大子数组和的三种方法:暴力枚举法、动态规划(Kadane算法)和分治法。暴力法通过三层循环或前缀和优化实现,时间复杂度为O(n²)。Kadane算法采用动态规划思想,在O(n)时间内解决问题,通过维护当前最大和与全局最大和来高效求解。分治法将问题分解为左右子问题和跨中点子问题,时间复杂度为O(nlogn)。文章详细分析了各方法的实现思路、代码示例和性能特点,并指出Kadane算法是

文章图片
#leetcode#算法#动态规划
Java设计模式之抽象工厂模式详解

摘要: 抽象工厂模式是一种创建型设计模式,用于生成相关对象的家族(产品族)而无需指定具体类。它通过抽象接口隔离实现,支持跨平台UI、数据库访问等场景,确保产品一致性。模式结构包含抽象工厂、具体工厂和产品层次,扩展时符合开闭原则(新增产品族不修改代码)。优点是解耦客户端与产品、便于切换产品族;缺点是增加新产品种类需修改接口,可能过度设计。实际应用如Spring的多数据库访问层,可通过配置切换具体工厂

文章图片
#java#设计模式#抽象工厂模式
LeetCode经典算法面试题 #295:数据流的中位数(双堆法、有序列表、平衡树等多种实现方案详解)

本文讨论了动态数据流中快速计算中位数的问题,提出了三种解决方案。最优解法是使用双堆法(优先队列),将数据分为较小和较大的两部分分别用最大堆和最小堆存储,确保堆大小平衡。插入时间复杂度为O(log n),查询为O(1)。另外两种方法(有序列表二分插入和平衡二叉搜索树)由于效率或实现复杂度问题,不如双堆法实用。双堆法通过优先队列的巧妙组合,高效解决了动态数据流的中位数计算问题。

文章图片
#算法#leetcode
LeetCode经典算法面试题 #76:最小覆盖子串 (枚举法、滑动窗口等多种实现方案详细解析)

摘要 本文研究字符串最小覆盖子串问题,要求在字符串s中找到包含字符串t所有字符的最短连续子串。提出了两种解决方案: 暴力枚举法:通过双重循环枚举所有子串,检查是否包含t的所有字符。时间复杂度为O(m²×n),仅适用于小规模输入。 滑动窗口+双指针法:使用双指针维护可变窗口,右指针扩展窗口直至满足条件,左指针收缩窗口寻找最小解。通过哈希表统计字符频率,利用valid计数器判断匹配情况,实现O(m+n

文章图片
#算法#leetcode
LeetCode经典算法面试题 #15:三数之和(双指针、哈希表、分治法等五种实现方案详细解析)

本文探讨了在整数数组中寻找所有不重复三元组使其和为0的问题。通过分析问题特性,提出两种高效解法:排序+双指针法(最优解)和哈希表法。双指针法在排序后固定一个元素,使用双指针在剩余数组中寻找两数之和,时间复杂度O(n²),空间复杂度O(1)。哈希表法利用哈希存储遍历元素,同样达到O(n²)时间复杂度,但空间复杂度为O(n)。两种方法都通过排序预处理和跳过重复元素实现高效去重,适用于大规模数据场景。

文章图片
#算法#leetcode
Java设计模式之建造者模式(Builder)详解

建造者模式是一种创建型设计模式,用于分步骤构建复杂对象,特别适合多参数配置或复杂初始化场景。其核心价值在于分离构造与表示,通过链式调用提供流畅API,支持参数灵活组合和构造过程可控。典型应用包括复杂对象创建、多参数配置和不可变对象构建等。模式结构包含指挥者、抽象建造者、具体建造者和产品四个角色,体现了单一职责、开闭等设计原则。代码实现中,产品类封装复杂对象属性,建造者接口定义构建步骤,具体建造者实

文章图片
#java#设计模式#建造者模式
Java设置session过期时间的几种方法(亲测有效)

本文介绍了Java中如何设置Session会话对象的过期时间。首先介绍了Session的基本概念和过期时间的意义,然后给出了配置Session的过期时间的四种方法

文章图片
#java
Oracle 数据库归档日志爆满(ORA-00257)紧急处理与自动化清理解决方案

摘要: Oracle数据库出现ORA-00257错误表明归档空间不足,导致普通用户无法连接。紧急处理需以SYSDBA身份登录,通过RMAN手动清理旧归档日志(如删除1天前的数据)。长效解决方案是创建自动化清理脚本(如按时间保留3天归档),结合crontab定时任务。同时建议设置空间监控告警,确保DataGuard环境下主备库同步。本文提供了从紧急救援到自动化管理的完整方案,适用于11g/12c/1

文章图片
#数据库#oracle
    共 21 条
  • 1
  • 2
  • 3
  • 请选择