
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文总结了四道贪心算法相关的区间问题: 452.用最少数量的箭引爆气球:通过按气球结束坐标排序,合并重叠区间,计算最小箭数等于非重叠区间数。 435.无重叠区间:与452题思路一致,按结束时间排序后移除重叠区间,最小移除数等于总区间数减去最大非重叠区间数。 763.划分字母区间:记录字母最后出现位置,动态维护当前片段结束点,当遍历到结束点时划分片段。 56.合并区间:按区间起始时间排序后合并重叠区
加油站、分发糖果、柠檬水找零、根据身高重建队列
一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?283从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右3. 向下 -> 向右 -> 向下286。
本文介绍了三个经典的动态规划问题及其解法: 斐波那契数列:使用动态规划数组dp存储中间结果,避免递归重复计算,时间复杂度O(n),空间复杂度O(n)。 爬楼梯问题:与斐波那契数列类似,dp[i]表示爬到第i阶的方法数,通过状态转移方程dp[i]=dp[i-1]+dp[i-2]求解。 最小花费爬楼梯:dp[i]表示到达第i阶的最低花费,通过比较从i-1和i-2阶到达的花费取最小值,使用动态规划优化求
本文介绍了四个动态规划典型问题:组合求和、爬楼梯、零钱兑换和完全平方数。这些问题均采用一维动态规划解法,通过定义dp数组表示目标状态,初始化基准条件,然后通过状态转移方程递推求解。组合求和问题考虑不同顺序作为不同解,爬楼梯问题计算到达目标阶数的所有可能方式,零钱兑换问题寻找最少硬币组合,完全平方数问题则求最少平方数个数。这些问题的解法展示了动态规划处理最优化问题的通用模式,时间复杂度多为O(n*m
本文总结了四种股票买卖问题的动态规划解法: 不限交易次数(问题II):通过比较相邻价格差累加利润,时间复杂度O(n)。 最多2次交易(问题III):定义5个状态(无操作、第一次持有/卖出、第二次持有/卖出),时间复杂度O(n)。 最多k次交易(问题IV):扩展为2k+1个状态,当k较大时退化为问题II,时间复杂度O(nk)。 含冷冻期(问题309):定义4个状态(持有、可买入、卖出、冷冻期),通过
文章摘要: 本文介绍了多个动态规划算法的实现,包括: 单词拆分问题:通过构建布尔数组判断字符串是否可由字典单词拼接。时间复杂度O(n²)。 多重背包问题:使用一维数组记录不同容量下的最大价值,处理有限数量物品。时间复杂度O(nCk)。 打家劫舍系列问题: 线性房屋:相邻房屋不可同时偷窃 环形房屋:分解为两个线性问题 二叉树结构:后序遍历处理节点状态 股票买卖问题:使用状态转移计算最大利润,空间优化
本文总结了多个动态规划问题的解法,包括股票买卖、子序列、回文串等。 股票买卖问题(714题):通过动态规划记录每天持有/不持有股票的利润,考虑手续费,时间复杂度O(n)。 最长递增子序列(300题):使用dp数组记录以每个元素结尾的最长子序列长度,时间复杂度O(n^2),可优化为O(nlogn)。 最长公共子序列(1143题):通过二维dp数组比较两个字符串,时间复杂度O(mn)。 编辑距离(72

本文总结了使用单调栈解决五类典型算法问题的核心思路和代码实现: 每日温度问题:通过单调递减栈记录待升温日期,计算温度升高间隔天数。时间复杂度O(n)。 下一个更大元素问题:利用单调栈维护递减序列,快速查询nums1中各元素在nums2中的下一个更大值。处理循环数组时遍历两次模拟循环。 接雨水问题:单调栈动态维护凹槽边界,计算每个凹槽的雨水量。关键点在于弹出时确定左右边界和积水高度。 柱状图最大矩形

本文摘要:本文介绍了六种基于矩阵的岛屿问题及其解法,包括计数岛屿、计算最大岛屿面积、孤岛总面积、沉没孤岛、高山流水和建造最大岛屿。这些问题均采用BFS或DFS算法解决,核心思想是通过遍历矩阵识别连通区域,并利用标记数组避免重复访问。对于不同问题,如计算周长或合并岛屿,需调整遍历策略和边界条件处理。所有算法的时间复杂度为O(N×M),空间复杂度为O(N×M)。代码示例展示了Java实现,包括输入处理








