带你读《图解算法小抄》二十一、动态规划(15)

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 带你读《图解算法小抄》二十一、动态规划(15)

带你读《图解算法小抄》二十一、动态规划(14)https://developer.aliyun.com/article/1347948?groupCode=tech_library.


2)解题步骤

为了解决最小下降路径和的问题,我们可以使用动态规划的思想来解决。

 

  • 定义状态:我们使用一个二维数组 dp 来表示动态规划的状态,其中 dp[i][j] 表示从第一行到第 i 行的最小下降路径和,且路径的最后一个元素位于第 i 行的第 j 列。
  • 初始化状态:我们将 dp 数组初始化为一个与 matrix 数组相同大小的二维数组,并将第一行的元素复制到 dp 数组中。
  • 定义状态转移方程:对于每个位置 (i, j),我们需要考虑从上一行的哪个位置 (i-1, k) 转移而来,其中 k 的取值范围为 [j-1, j, j+1],我们选择转移过来的路径中和最小的那个路径,即 dp[i][j] = matrix[i][j] + Math.min(dp[i-1][j-1], dp[i-1][j], dp[i-1][j+1])
  • 最终结果:路径的最小下降路径和将会出现在 dp[n-1][j] 中的最小值,其中 n 是数组的大小。

 

 

下面是使用动态规划解决最小下降路径和问题的算法框架:

 

function minFallingPathSum(matrix) {
  const n = matrix.length;
  const dp = [...matrix];  for (let i = 1; i < n; i++) {
    for (let j = 0; j < n; j++) {
      dp[i][j] += Math.min(
        dp[i - 1][j - 1] ?? Infinity,
        dp[i - 1][j],
        dp[i - 1][j + 1] ?? Infinity
      );
    }
  }
  return Math.min(...dp[n - 1]);
}

23.最小下降路径和

1)题目描述

给定一个大小为 n x n 的二维整数数组 matrix,找到从第一行到最后一行的最小下降路径和。每一步只能移动到下一行中相邻的元素上。在这里,相邻的元素指的是位于当前元素右下方和右下方的两个元素。

要求路径上的数字总和最小。

2)解题步骤

为了解决最小下降路径和的问题,我们可以使用动态规划的思想来解决。

 

  • 定义状态:我们使用一个二维数组 dp 来表示动态规划的状态,其中 dp[i][j] 表示从第一行到第 i 行的最小下降路径和,且路径的最后一个元素位于第 i 行的第 j 列。
  • 初始化状态:我们将 dp 数组初始化为一个与 matrix 数组相同大小的二维数组,并将第一行的元素复制到 dp 数组中。
  • 定义状态转移方程:对于每个位置 (i, j),我们需要考虑从上一行的哪个位置 (i-1, k) 转移而来,其中 k 的取值范围为 [j-1, j, j+1],我们选择转移过来的路径中和最小的那个路径,即 dp[i][j] = matrix[i][j] + Math.min(dp[i-1][j-1], dp[i-1][j], dp[i-1][j+1])
  • 最终结果:路径的最小下降路径和将会出现在 dp[n-1][j] 中的最小值,其中 n 是数组的大小。

下面是使用动态规划解决最小下降路径和问题的算法框架:

 

function minFallingPathSum(matrix) {
  const n = matrix.length;
  const dp = [...matrix];  for (let i = 1; i < n; i++) {
    for (let j = 0; j < n; j++) {
      dp[i][j] += Math.min(
        dp[i - 1][j - 1] ?? Infinity,
        dp[i - 1][j],
        dp[i - 1][j + 1] ?? Infinity
      );
    }
  }
  return Math.min(...dp[n - 1]);
}


带你读《图解算法小抄》二十一、动态规划(16)https://developer.aliyun.com/article/1347938?groupCode=tech_library

相关文章
|
9月前
|
人工智能 搜索推荐 安全
seo 是啥意思?选对方式 + 看未来发展超简单!
SEO即搜索引擎优化,通过优化网站内容与结构,提升在搜索结果中的排名,获取免费流量。核心是用户体验,需长期投入,白帽为正道。未来SEO将融合AI与多平台搜索,GEO等新机遇涌现,助力品牌曝光与增长。
|
9月前
|
人工智能 SEO
智能体最新消息:从技术爆点到产业浪潮,三大趋势透视下一代人机协作范式
2024年AI智能体爆发,正重塑商业与职业格局。三大趋势凸显:智能体从工具升为战略核心,驱动企业模式创新;能力平民化催生“智能体操盘手”新职业;政策与资本共推教育生态成型。智能体已成工作新常态,时代变革亟待主动拥抱。
|
SQL 存储 缓存
日志服务 SQL 引擎全新升级
SQL 作为 SLS 基础功能,每天承载了用户大量日志数据的分析请求,既有小数据量的快速查询(如告警、即席查询等);也有上万亿数据规模的报表级分析。SLS 作为 Serverless 服务,除了要满足不同用户的各类需求,还要兼顾性能、隔离性、稳定性等要求。过去一年多的时间,SLS SQL 团队做了大量的工作,对 SQL 引擎进行了全新升级,SQL 的执行性能、隔离性等方面都有了大幅的提升。
725 118
|
自动驾驶 物联网 5G
什么是 5G 以及它如何工作?
【8月更文挑战第23天】
3654 0
|
数据采集 存储 DataWorks
DataWorks Copilot:让你的数据质量覆盖率一键飞升!
在数据加工链路中,如何确保高质量的数据产出是一个一直需要重点解决的问题。阿里云DataWorks的数据质量规则模板可以帮助用户建设数据质量,在离线表上定义相关的规则。为优化手动配置规则的工作量,DataWorks的智能助手 DataWorks Copilot 推出了数据质量规则推荐功能,您可以使用这一功能,一键提升数据质量覆盖度。
1229 20
DataWorks Copilot:让你的数据质量覆盖率一键飞升!
|
机器学习/深度学习 人工智能 自然语言处理
什么是智能搜索
智能搜索融合了人工智能和大数据技术,提供高效的语义理解、多模态数据处理及个性化推荐。它不仅支持传统关键词匹配,还结合NLP、机器学习等先进技术,提升信息检索的精准度与多样性。适用于电商、内容平台、多媒体及企业内部知识库等多种场景,显著优化用户体验和业务效率。
2061 2
|
5G 网络架构 UED
网速只拼Mbps?解码网速真相的五大关键因素
Mbps(兆比特每秒)是衡量数据传输速度的单位,表示每秒传输的百万比特数。它是评估网络性能的核心指标,广泛应用于家用宽带、移动网络和企业级网络中。Mbps 数值越高,理论上数据传输越快,但实际体验还受网络拥塞、丢包率和信号强度等因素影响。例如,在网络高峰时段或信号较弱的地方,即使Mbps数值高,也可能出现卡顿。5G和光纤技术显著提升了Mbps速率,但仍需考虑硬件设备如路由器和网卡的性能瓶颈。理解Mbps及其影响因素,有助于用户选择合适的网络服务并优化网络体验。
1397 1
|
XML NoSQL 大数据
大数据中半结构化数据
【10月更文挑战第18天】
1456 4
|
监控 Kubernetes Cloud Native
Nacos
Nacos是一个开源的动态服务发现、配置管理、服务治理平台。它提供了对云原生环境中的微服务进行注册与发现、动态配置管理、服务路由及流量管理、服务降级与熔断、服务监控与可视化等功能。
1374 2

热门文章

最新文章