分类: 动态规划

8 篇文章

LeetCode62-不同路径
AI 摘要:本文详细解析 LeetCode 62 题"不同路径"的两种解法:动态规划法和数论组合法。动态规划部分采用二维和一维 DP 数组实现,通过五步分析法讲解状态转移方程和初始化逻辑。数论部分将问题转化为组合数学问题,给出防止计算溢出的优化实现。文章涵盖从基础解法到空间优化技巧。
LeetCode343-整数拆分
AI 摘要:本文围绕 LeetCode 343 题“整数拆分”展开,给出动态规划和贪心/数学两种解法。动规通过五部曲分析,确定递推公式求解;贪心则依据数学规律,尽可能多拆出 3。同时分析两种方法复杂度,指出数学法更高效,代码简洁、运行快,动规更直观易想。
LeetCode63-不同路径II
AI 摘要:本文详细解析 LeetCode 63 题"不同路径II",在 62 题基础上增加了障碍物处理。提供二维和一维两种 dp 数组实现方案。重点分析障碍物对路径计算的影响,包括起点终点障碍直接返回 0、初始化时遇到障碍停止赋值、状态转移时跳过障碍等关键处理逻辑。
LeetCode746-使用最小花费爬楼梯
AI 摘要:本文围绕 LeetCode 746 题“使用最小花费爬楼梯”展开。详细介绍了问题,即给定数组 `cost` 求到楼梯顶最低花费。运用动规五部曲分析,确定 `dp` 数组含义、递推公式等。给出 Java 代码实现,含非压缩和压缩版本,通过模拟示例展示状态变化,助读者掌握动态规划解决此类问题的方法。
LeetCode70-爬楼梯
AI 摘要:本文围绕 LeetCode 70 题“爬楼梯”展开。题目要求计算爬 `n` 阶楼梯,每次可爬 1 或 2 阶的不同方法数。运用动态规划五部曲详细分析,明确 `dp` 数组含义、递推公式等。还给出 Java 代码实现,包含非压缩与压缩版本,避免使用递归导致超时,助读者掌握用动态规划解决此类问题的思路。
LeetCode509-斐波那契数
AI 摘要:本文聚焦 LeetCode 509 斐波那契数问题。先介绍斐波那契数列定义与题目要求,即根据给定 `n` 计算 `F(n)`。接着用动态规划五部曲分析解题思路,包括确定 `dp` 数组含义、递推公式等。最后给出三种代码实现,有压缩、非压缩及递归版本,帮助读者理解不同解法,加深对动态规划的认识。
LC1049最后一块石头的重量II
参考文章:代码随想录https://programmercarl.com/1049.%E6%9C%80%E5%90%8E%E4%B8%80%E5%9D%97%E7%9F%B3%E5%A4%B4%E7%9A%84%E9%87%8D%E9%87%8FII.html 一、题目 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 …
LC416分割等和子集
参考文章:代码随想录https://programmercarl.com/0416.%E5%88%86%E5%89%B2%E7%AD%89%E5%92%8C%E5%AD%90%E9%9B%86.html 一、题目 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输…