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

LeetCode_Java_动态规划系列(1)(题目+思路+代码)

目录

斐波那契类型

746.使用最小花费爬楼梯

 矩阵

120. 三角形最小路径和


斐波那契类型

746.使用最小花费爬楼梯

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。

示例 1:

输入:cost = [10,15,20]
输出:15
解释:你将从下标为 1 的台阶开始。
- 支付 15 ,向上爬两个台阶,到达楼梯顶部。
总花费为 15 。

示例 2:

输入:cost = [1,100,1,1,1,100,1,1,100,1]
输出:6
解释:你将从下标为 0 的台阶开始。
- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。
- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。
- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。
- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。
- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。
- 支付 1 ,向上爬一个台阶,到达楼梯顶部。
总花费为 6 。

思路:

class Solution {public int minCostClimbingStairs(int[] cost) {int arr[] = new int[cost.length];arr[0] = cost[0];arr[1] = cost[1];for(int i = 2; i < cost.length; i++){arr[i] = Math.min(arr[i-1],arr[i-2])+cost[i];}return Math.min(arr[cost.length-2],arr[cost.length-1]);}
}

 矩阵

120. 三角形最小路径和

给定一个三角形 triangle ,找出自顶向下的最小路径和。

每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 ii + 1

自底向上:

在执行最后一行之后,dp[]的每个下标都有对应的值

以此类推:

遍历结果之后,dp[0]会存储每次相邻的数之间的最小值,直接返回dp[0]即可

class Solution {public int minimumTotal(List<List<Integer>> triangle) {int[] dp = new int[triangle.size()+1]; //triangle.size()表triangle的大小for(int row = triangle.size() - 1; row >= 0 ; row--){for(int i = 0; i <=row; i++){dp[i] = Math.min(dp[i],dp[i+1])+triangle.get(row).get(i); //triangle.get(row).get(i)获取当前行下标为i的元素}}return dp[0];}
}

http://www.lryc.cn/news/306897.html

相关文章:

  • Linux使用Docker部署在线协作白板WBO并结合内网穿透发布公网远程访问
  • petalinux烧写image.ub报错
  • [足式机器人]Part2 Dr. CAN学习笔记-Ch00-2 - 数学知识基础
  • 【Linux】head命令使用
  • 【书籍分享 • 第三期】虚拟化与容器技术
  • 数据结构之:堆
  • 助力探索社交出海最短变现路径,融云 1V1 音视频「限时免费」
  • 汇编工具理解
  • Leetcoder Day21| 回溯理论基础+组合
  • 备战蓝桥杯Day17 - 链表
  • 登录页设计新选择:毛玻璃和新拟态风格,非2.5D和插画风
  • 14:00面试,14:05就出来了,问的问题有点变态。。。
  • 关于纯前端想要变成全栈编写接口的学习推荐
  • Rust升级慢,使用国内镜像进行加速
  • Base64 编码 lua
  • 41.仿简道云公式函数实战-数学函数-SUMIF
  • 挑战30天学完Python:Day22 爬虫
  • AI:138-开发一种能够自动化生成艺术品描述的人工智能系统
  • 智慧城市建设的新里程碑:公共服务电子支付大屏
  • Netty之Decoder详解与实战
  • PCIe P2P DMA全景解读
  • 【Git】window下大小写不敏感问题处理
  • 【JS】【Vue3】【React】获取滚轮位置的方法:JavaScript、Vue 3和React示例
  • 什么是线程和进程?
  • MaxScale实现mysql8读写分离
  • 【c语言】内存函数
  • 规则引擎项目
  • Docker Image(镜像)
  • qgis启动提示Could not load qgis_app.dll
  • 数据分析---Python与sql