技术栈
动态规划
彧azz
11 小时前
数据结构
·
学习
·
算法
·
贪心算法
·
动态规划
算法设计与分析:贪心与动态规划
在算法设计与分析中,贪心算法(Greedy Algorithm)和动态规划(Dynamic Programming)是两种极为重要的求解策略。它们都用于解决最优化问题,但设计思路和适用条件截然不同。贪心算法通过每一步做出当前看起来最优的选择来逼近全局最优解,而动态规划则通过分解子问题并记录子问题结果来保证全局最优。理解两者的区别,是算法学习中的关键一步。
Logic101
2 天前
c语言
·
数据结构
·
动态规划
·
贪心
·
时间复杂度
·
算法题
·
最大子数组和
C语言/数据结构动态规划题解:Kadane算法求最大子数组和——O(n)时间O(1)空间
小明在玩一个有趣的数字游戏:他有一排连续的数字积木,每个积木上写着一个整数(可能是正数或负数)。现在,他想找出这些积木中连续一段(子数组)的和的最大值是多少。例如,如果积木序列是 [-2, 1, -3, 4, -1, 2, 1, -5, 4],那么连续和最大的子数组是 [4, -1, 2, 1],其和为 6。
梦帮科技
2 天前
数据结构
·
数据库
·
架构
·
node.js
·
音视频
·
动态规划
·
推荐算法
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
版权声明:本文系 DREAMVFIA UNION 原创技术专题,RNOISE 2.0 项目技术解析系列之一。 未经 DREAMVFIA UNION 书面授权,禁止转载、摘编、洗稿或用于模型训练语料。 RNOISE 为独立项目,与 Suno、Udio 等第三方平台无官方合作关系,文中提及仅为兼容性说明。
语戚
3 天前
java
·
算法
·
leetcode
·
动态规划
·
力扣
·
dp
力扣 1621. 大小为K的不重叠线段的数目:动态规划(Java 实现)
LeetCode 1621 大小为 K 的不重叠线段的数目是计数动态规划的经典标杆题,也是面试中考察状态定义、前缀和优化以及组合计数能力的核心考点。这道题的核心是破解 “在数轴上选出恰好 k 条不重叠线段,统计全部合法方案数量” 的问题,题目要求对结果取模,涉及大数下的计数运算。
青山木
3 天前
java
·
数据结构
·
算法
·
leetcode
·
动态规划
Hot 100 --- 最长有效括号
本文概览:本文讲解最长有效括号的核心思路:方法一是栈加哨兵记录断点位置,方法二是双指针正反各扫一遍,补齐"左侧多余左括号"导致的漏算
这料鬼有毒
3 天前
算法
·
leetcode
·
动态规划
二刷hot100-1143.最长公共子序列
状态转移方程:if(ch1[i - 1] == ch2[j - 1]){dp[i][j] = dp[i - 1][j - 1] + 1;
Tisfy
3 天前
动态规划
·
题解
·
dp
·
滑动窗口
LeetCode 1477.找两个和为目标值且不重叠的子数组:滑动窗口 + 记录前值(动态规划)
力扣题目链接:https://leetcode.cn/problems/find-two-non-overlapping-sub-arrays-each-with-target-sum/
ynchyong
4 天前
动态规划
动态规划解题思路:入门篇
摘要:动态规划(DP)是算法面试与竞赛的高频考点,核心在于把大问题拆分为重叠子问题,通过保存子问题解避免重复计算。本文从「思路」出发,给出可复用的解题五步法:明确状态定义 → 推导状态转移方程 → 确定初始化与边界 → 确定遍历顺序 → 确定返回值。随后用爬楼梯、最长递增子序列、0-1 背包三道经典题逐步拆解,并总结常见题型套路、误区与空间优化技巧,帮助读者建立系统的 DP 解题方法论。
Tisfy
5 天前
动态规划
·
字符串
·
题解
·
贪心
·
dp
·
回文字符串
LeetCode 2472.不重叠回文子字符串的最大数目:动态规划(贪心)
力扣题目链接:https://leetcode.cn/problems/maximum-number-of-non-overlapping-palindrome-substrings/
青山木
6 天前
java
·
数据结构
·
算法
·
leetcode
·
动态规划
Hot 100 --- 最长递增子序列
本文概览:本文讲解最长递增子序列的核心思路:方法一是 O(n²) 的 DP 枚举(以每个元素结尾的 dp[i]),方法二是 O(n log n) 的二分优化(维护各长度子序列的最小末尾值),从重复组合的浪费中提炼出"保留最小末尾"的剪枝
Logic101
7 天前
c语言
·
数据结构
·
动态规划
·
时间复杂度
·
算法题
·
状态机dp
·
最大子数组和
C语言/数据动态规划题解:翻转一次子数组后的最大子数组和——四状态DP(O(n)时间O(1)空间)
小明在玩一个有趣的数字游戏,他有一个整数数组,代表每个数字的“能量值”。游戏允许他选择数组中的任意一个连续子数组,并将这个子数组内的所有数字翻转(正变负,负变正)一次。翻转操作只能执行一次。
青山木
7 天前
java
·
数据结构
·
算法
·
leetcode
·
动态规划
Hot 100 --- 打家劫舍
本文概览:本文讲解打家劫舍的核心思路:dp[i] 表示偷到第 i 房的最大金额,偷或不偷第 i 房两种情况取最大,滚动变量优化到 O(1) 空间
青山木
7 天前
java
·
数据结构
·
算法
·
leetcode
·
动态规划
枚举类DP进阶:完全平方数与零钱兑换
本文概览:本文从线性 DP 进阶到枚举类 DP:完全平方数与零钱兑换两题合一讲解,dp[i] 由枚举"最后一步"的候选集合推出,min(dp[i - j²] + 1) 与 min(dp[i - coin] + 1) 同源
wzdark
8 天前
线性代数
·
矩阵
·
动态规划
基于矩阵的动态规划路径问题性能优化4
构建二维网格中的路径问题模型,明确状态定义与转移方程。以从左上角到右下角的最小代价路径为例,描述传统动态规划中状态转移的递推关系。分析时间复杂度为 $ O(mn) $,空间复杂度为 $ O(mn) $ 的基本实现方式。
find1star
10 天前
java
·
数据结构
·
算法
·
leetcode
·
链表
·
职场和发展
·
动态规划
LeetCode 25:K 个一组翻转链表
这道题要求每 k 个节点翻转一次,如果最后剩余节点不足 k 个,则保持原顺序。我的第一反应不是直接操作链表指针,而是利用 Deque(双端队列)暂存当前这一组节点。
chushiyunen
10 天前
算法
·
贪心算法
·
动态规划
动态规划、贪心算法、分治法
knapsack是背包的意思。代码:代码与表格的对应关系 1、i对应表格的行(第几个物品)。注意数组下标从0开始,所以第i个物品的重量是w[i-1]。 2、j对应表格的列(当前的背包容量)。 3、dp[i][j]=Math.max(…)就是我们在表格里写下的那个“取最大值”的动作。
梓䈑
11 天前
c++
·
算法
·
动态规划
【动态规划系列】路径问题、子数组 和 子序列问题、背包问题
1137. 第 N 个泰波那契数746. 使用最小花费爬楼梯91. 解码方法62. 不同路径63. 不同路径 II
微功夫信息技术
11 天前
人工智能
·
学习
·
算法
·
动态规划
分层多智能体强化学习驱动的非急救转运公平 - 效率统一调度系统研究与实践
作者:邵锋 单位:微功夫信息技术南通有限公司(安护送非急救转运系统),江苏 2026年9月非急救医疗转运(NEMT)是分级诊疗与民生保障体系的关键支撑环节,当前行业普遍存在调度效率偏低、区域服务不均、重症优先级不足等结构性问题。本文提出一种分层多智能体强化学习(H-MARL)调度范式,构建 “病情优先级 - 区域均衡性 - 全局运营效率” 三层内生奖励机制,将公平性约束完整嵌入动态调度的实时决策过程;同时融合时空因果卷积网络实现高精度短期需求预测,为调度决策提供前置支撑。基于长三角地区真实运营场景的验证结
辰烨chenye
13 天前
算法
·
leetcode
·
动态规划
LeetCode Hot 100 题解 · 动态规划篇
本专题里有好几道题本质就是背包问题换皮,先把模板理清,后面具体题目就是往模板里套参数:三道题正好覆盖了两种背包 × 两种求值目标,是背包变体的三个经典代表。
a18792721831
14 天前
算法
·
leetcode
·
动态规划
·
dp
·
01背包
·
算法讲解
·
决策合并
【算法】动态规划第四篇:背包收官——min 哨兵、计数世界与组合排列分水岭
DP 系列第四篇,背包三课的后两讲。LC322 零钱兑换(最值背包):一次翻出三个缺口——min 合并被赋值覆盖吃掉(覆盖病第三案)、哨兵 -1 在 min 世界传染(-1+1=0 冒充最优解,实测算出比数学下界还小的答案 15 < 20)、+dp[c] 的巧合依赖;沉淀出哨兵配对原则的进阶版:min 世界的哨兵必须"大而无害"。LC518 零钱兑换 II(计数背包):卡壳三弯——种子 dp[0]=1(空集是凑 0 元的唯一方式)、+ 合并(四族合并符集齐)、正序(0-1 背包的倒序惯性不能带来完全背包)