当前位置: 首页 > news >正文

动态规划(5)路径问题--剑指offer -珠宝的最大值

题目:      现有一个记作二维矩阵 frame 的珠宝架,其中 frame[i][j] 为该位置珠宝的价值。拿取珠宝的规则为:

  • 只能从架子的左上角开始拿珠宝
  • 每次可以移动到右侧或下侧的相邻位置
  • 到达珠宝架子的右下角时,停止拿取

注意:珠宝的价值都是大于 0 的。除非这个架子上没有任何珠宝,比如 frame = [[0]]

示例 1:

输入:frame = [[1,3,1],[1,5,1],[4,2,1]]
输出:12
解释:路径 1→3→5→2→1 可以拿到最高价值的珠宝

1.状态表示:

      从  dp[i][j]表示:到达【i,j】位置1时候,此时的最大值

2.状态转移方程:

      dp[i][j]=max(dp[i-1][j],dp[i][j-1])+g[i][j]

3.初始化:

    1.里面的值,要保证后面的填表是正确的

    2.下标的映射

4.填表顺序:

从上往下填每一行

每一行从左往右

5.返回值:

dp【m】【n】

public class Solution {public int jewelleryValue(int[][] frame){//1.创建dp表//2.初始化//3.填表//4.返回值int m=frame.length,n=frame[0].length;int[][]dp=new int[m+1][n+1];for (int i=1;i<=m;i++)for (int j=1;j<=n;j++)dp[i][j]=Math.max(dp[i][j-1],dp[i-1][j])+frame[i-1][j-1];return dp[m][n];}public static void main(String[] args) {Solution solution=new Solution();int[][]frame={{1,3,1},{1,5,1},{4,2,1}};System.out.println(solution.jewelleryValue(frame));}
}

相关文章:

  • 【AI论文】Phi-4-reasoning技术报告
  • nginx 核心功能 02
  • 软件架构方之旅(5):SAAM 在软件技术架构评估中的应用与发展研究
  • 基于python生成taskc语言文件--时间片轮询
  • 0.0973585?探究ts_rank的score为什么这么低
  • KaiwuDB X 遨博智能 | 构建智能产线监测管理新系统
  • LLVM Pass
  • GTS-400 系列运动控制器板卡介绍(十五)---运动模式二
  • 高效便捷的定时关机与任务管理工具
  • Room + WorkManager的Android学习总结
  • el-input Vue 3 focus聚焦
  • MAC 地址
  • NaVILA: Legged Robot Vision-Language-ActionModel for Navigation
  • 【Java学习笔记】构造器
  • Linux系统中的时间同步服务
  • 线程与进程深度解析:从fork行为到生产者-消费者模型
  • 网络Tips20-003
  • ArrayList的扩容机制(源码解析)
  • (ADC)数模转换器的不同类型对比
  • 支撑座的安装精度对滚珠丝杆性能有哪些影响?
  • 山大齐鲁医院护士论文现“男性确诊子宫肌瘤”,院方称将核实
  • 中虎跳峡封闭仍有游客逆行打卡,景区:专人值守防意外
  • 浙江“胖都来”开业多位明星祝贺,“胖东来”称已取证投诉,律师:碰瓷侵权
  • 澳大利亚大选今日投票:聚焦生活成本与“特朗普问题”
  • 叙利亚多地遭以色列空袭
  • 17家A股城商行一季报扫描:青岛银行营收增速领跑,杭州银行净利增速领跑