logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

LeetCode算法日记 - Day 76: 粉刷房子

本文探讨了粉刷房屋最小成本问题的动态规划解法。给定一排n个房屋,每个房屋可涂红、蓝或绿三种颜色之一,要求相邻房屋颜色不同,且每个颜色对应不同成本。通过定义dp[i][j]表示第i个房屋涂j色的最小成本,建立递推关系式:dp[i][0]=min(dp[i-1][1],dp[i-1][2])+costs[i][0]。算法时间复杂度为O(n),空间复杂度O(n)(可优化为O(1))。核心思想是当前房屋的

文章图片
#算法#leetcode#职场和发展 +4
LeetCode算法日记 - Day 61: 解数独、单词搜索(附带模版总结)

本文介绍了两种经典回溯算法的应用:数独求解和单词搜索。对于数独问题,通过三张状态表(行、列、宫)进行强剪枝,结合回溯法高效求解。单词搜索则采用DFS回溯策略,通过访问标记避免重复使用格子,按顺序匹配单词字符。最后总结了回溯算法的三种模板:位置驱动型(如单词搜索)、选择驱动型(如全排列)和二叉决策型(如子集生成),并分析了各自的特点和应用场景。两种算法的时间复杂度在最坏情况下均为指数级,但通过剪枝和

文章图片
#leetcode#算法#职场和发展 +4
LeetCode算法日记 - Day 53: 验证二叉搜索树、二叉搜索树的第K小元素

本文介绍了二叉搜索树的两个经典问题及解法。第一部分讲解如何验证二叉树是否为二叉搜索树,通过维护节点值区间(low,high),递归检查每个节点是否满足严格区间约束,使用long类型避免边界值问题,时间复杂度O(n)。第二部分解决查找第k小元素问题,利用中序遍历特性,通过计数器remain在遍历过程中提前终止,时间复杂度O(h+k)。两问题均采用递归解法,并分析了可能出现的边界情况和优化空间。

文章图片
#算法#leetcode#职场和发展 +3
[JavaEE] 浅谈线程池、自实现阻塞队列

本文介绍了线程池和阻塞队列的核心概念。线程池通过复用线程提高性能,包含核心线程数、最大线程数等参数配置,Java标准库提供了多种线程池实现方式。阻塞队列是具有线程安全特性的特殊队列,支持生产者消费者模型,能有效解耦系统组件。文章还分析了Java标准库中的BlockingQueue接口及其实现,并给出了一个基于循环队列的自实现阻塞队列示例,使用synchronized和wait/notify机制实现

文章图片
#java#开发语言#java-ee
LeetCode算法日记 - Day 10: x 的平方根、搜索插入位置

本文解析了两个二分查找算法问题:1.x的平方根问题要求计算非负整数x的算术平方根并向下取整,通过二分查找确定满足r²≤x的最大整数r,注意处理计算过程中的整数溢出问题。2.搜索插入位置问题要求在有序数组中查找目标值或应插入位置,通过寻找第一个大于等于目标值的元素索引来确定位置,时间复杂度为O(logn)。两个问题都利用了二分查找的核心思想,通过维护查找区间和调整边界条件来高效求解。

文章图片
#leetcode#算法#java
到底了