- 博客(15)
- 收藏
- 关注
原创 LeetCode------300. 最长递增子序列
dp[i]:以nums[i]结尾的最长严格递增子序列长度dp[ ] = 1(每个元素自身可单独构成长度为 1 的子序列)tailstails[k]表示长度为k+1的递增子序列的最小末尾元素(例如:tails[0] 是长度为 1 的子序列的最小末尾,tails[1] 是长度为 2 的子序列的最小末尾)最长递增子序列(LIS)的基础解法是动态规划(O(n²)),核心是用dp[i]记录「以 nums[i] 结尾」的最长长度,通过两层循环更新;
2026-01-06 23:14:15
569
原创 LeetCode------354. 俄罗斯套娃信封问题
摘要 俄罗斯套娃信封问题要求在给定信封尺寸的二维数组中,找出最多能嵌套的信封数量。本文提出了一种基于贪心算法和二分查找的最优解法: 首先对信封进行特殊排序:宽度升序,同宽度时高度降序,确保宽度条件满足且避免同宽度信封互相嵌套。 使用tails数组维护递增高度序列的最小末尾值,通过二分查找确定每个信封的插入位置: 若高度大于当前所有末尾值,扩展序列长度 否则替换第一个不小于该高度的值,优化后续匹配可能 最终tails数组长度即为最大嵌套数。该方法将时间复杂度从O(n²)优化至O(nlogn),是解决此类问题的
2026-01-06 21:37:45
520
原创 递归与分治
摘要:本文系统阐述了递归与分治的概念、本质及区别。递归是通过函数自我调用实现的程序控制流程,需要满足基准条件和递推关系;分治则是将问题拆解为独立子问题求解后再合并结果的算法设计范式。二者在子问题独立性、结果合并、复杂度模型等方面存在显著差异。文章通过阶乘和归并排序的实例分析执行流程,给出通用代码模板,并列举典型应用场景。同时澄清了常见误区,指出递归是分治的实现手段而非性能决定因素,分治子问题无需严格二分但必须独立。最后强调递归关注终止与递推,分治侧重问题分解与合并。
2026-01-06 11:21:16
713
原创 贪心算法与动态规划的理论分界
贪心算法和动态规划是解决最优化问题的两种核心方法,主要区别在于决策依据和信息利用方式。贪心算法仅基于当前局部信息做最优选择,不回头修改,效率高但不保证全局最优;动态规划则记录所有可能状态的最优值,通过子问题组合确保全局最优,但复杂度较高。贪心适用于满足特定性质的问题(如霍夫曼编码),而动态规划适合具有重叠子问题的问题(如背包问题)。简言之,贪心是"一步到位",动态规划是"全面考虑"。
2026-01-05 10:40:46
170
原创 云存储 vs 数据库
本文详细介绍了云存储(如阿里云OSS、腾讯云COS)和数据库(如MySQL、MongoDB)的区别,并通过实际代码示例展示了它们如何配合使用。通过本文,你将清晰理解云存储和数据库的各自用途以及它们在实际开发中的协同工作方式。
2025-12-10 09:28:28
331
原创 云 OCR + 云存储
本文介绍如何用 Java + 阿里云 OSS+OCR 实现 Web/App 端的图片文字识别 + 云端存储功能,包含完整后端代码和集成步骤。
2025-12-10 00:54:07
275
原创 【Hutool 依赖详解笔记】
详解 Hutool 工具库的依赖配置与版本选择,包括稳定版、维护说明及更新频率,助力 Java 项目高效集成工具类
2025-12-07 02:31:21
826
原创 【MySQL tinyint(1)--------从存储字节到框架映射】
MySQL 的 tinyint(1) 在 Java 开发中的正确用法。从它的底层存储原理说起,解释为什么 JDBC 驱动会把它和布尔类型搞混,然后重点在 MyBatis-Plus 做逻辑删除时,用 Integer 还是 Boolean 更合适。
2025-12-07 01:58:46
838
原创 【MinIO 零基础入门:核心概念 + Docker 部署 + Java 操作全攻略】
MinIO 是轻量、高性能的分布式对象存储系统,兼容 S3 协议,适用于云原生 / 微服务场景。本文从核心概念出发,详解 MinIO 的 Docker 快速部署(含控制台验证),并提供 Java 完整工具类(上传 / 下载 / 临时链接),同时补充生产环境安全配置建议,帮助开发者 30 分钟完成 MinIO 集成,替代传统本地存储 / FTP。
2025-12-05 16:11:44
398
原创 Java高级笔记(第二章)
自然界中的每个物体都有描述信息(如性别、年龄),而计算机中对象的信息通常用字段值表示。类型信息记录了类的名称、字段、方法、父类或接口等信息。JVM通过类型信息认识和识别对象,赋予程序动态性。运行时类型识别(RTTI):在程序运行时动态识别对象和类的信息。运行时类型识别(RTTI)是Java语言中的一个重要概念,它允许程序在运行时检查对象和类的信息。这为编写更加灵活和动态的代码提供了可能。定义:代理模式是一种结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。
2025-05-11 17:05:52
1951
原创 python笔记(一)
Python是一种高级编程语言,它由Guido van Rossum于1991年首次发布。Python的设计哲学强调代码的可读性和简洁性,其语法清晰简单,使得学习和使用变得相对容易。特性编译型语言解释型语言翻译方式一次性翻译逐行翻译执行速度快较慢依赖工具不依赖编译器需要解释器跨平台性差(需重新编译)强(只要有解释器即可运行)开发效率较低(需编译和调试)高(实时反馈)适用场景性能要求高的应用快速开发、脚本、Web 应用在编程中,有时需要一个占位符来表示“这里什么都不做”。
2025-03-25 21:06:02
1680
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅