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

力扣labuladong一刷day59天动态规划

力扣labuladong一刷day59天动态规划

文章目录

      • 力扣labuladong一刷day59天动态规划
      • 一、509. 斐波那契数
      • 二、322. 零钱兑换

一、509. 斐波那契数

题目链接:https://leetcode.cn/problems/fibonacci-number/description/
思路:这是非常典型的一道题,下面是优化过的代码,a,b就是dp数组,因为每计算一个值,需要前两个值,这个a,b就是用来记录前两个值,避免重复计算,递推公式便是f(n) = f(n-1)+f(n-2)。

class Solution {public int fib(int n) {if (n < 2) return n;int a = 0, b = 1, c = 0;for (int i = 2; i <= n; i++) {c = a + b;a = b;b = c;}return b;}
}

二、322. 零钱兑换

题目链接:https://leetcode.cn/problems/coin-change/description/
思路:本题是一个典型完全背包问题,物品数量无限,故物品在外,背包在内,均正序,背包正序用来满足物品无限。
定义dp数组,dp[j]表示要填满容量为j的背包所需要的最少物品数量。
递推公式为dp[j] = min(dp[j-coins[i]] + 1, dp[j]),求最少物品数量,有两种选择,要么是放入当前物品,要么是不放入当前物品。放入的话,自然就是刚好少于当前物品值的容积所对应的物品数量加1,不放入的话,直接使用dp[jj]的值,该dp[j]可能由之前的物品所填满,也有可能还没填。

class Solution {public int coinChange(int[] coins, int amount) {int[] dp = new int[amount+1];Arrays.fill(dp, Integer.MAX_VALUE);dp[0] = 0;for (int i = 0; i < coins.length; i++) {for (int j = coins[i]; j < dp.length; j++) {if (dp[j - coins[i]] != Integer.MAX_VALUE) {dp[j] = Math.min(dp[j-coins[i]] + 1, dp[j]);}}}return dp[amount] == Integer.MAX_VALUE ? -1 : dp[amount];}
}
http://www.lryc.cn/news/278567.html

相关文章:

  • pyenv环境找不到sqlite:No module named _sqlite3
  • Histone H3K4me2 Antibody, SNAP-Certified™ for CUTRUN
  • 我用 Laf 开发了一个非常好用的密码管理工具
  • windows项目部署
  • http首部
  • 2024.1.8 Day04_SparkCore_homeWork
  • 09.简单工厂模式与工厂方法模式
  • DHCP,怎么在Linux和Windows中获得ip
  • 读写锁(arm)
  • 【第33例】IPD体系进阶:市场细分
  • response 拦截器返回的二进制文档(同步下载excel)如何配置
  • 为什么要使用云原生数据库?云原生数据库具体有哪些功能?
  • 05- OpenCV:图像操作和图像混合
  • 人脸识别(Java实现的)
  • Maven 依赖管理项目构建工具 教程
  • 供应链+低代码,实现数字化【共赢链】转型新策略
  • [力扣 Hot100]Day3 最长连续序列
  • 【办公技巧】Word功能区灰色显示不能编辑,怎么破?
  • 全志V853开发板原理图
  • 【解决】Unity Project 面板资源显示丢失的异常问题处理
  • Hyperledger Fabric Docker 方式多机部署生产网络
  • 高效降压控制器FP7132XR:为高亮度LED提供稳定可靠的电源
  • Spring Boot - Application Events 的发布顺序_ApplicationEnvironmentPreparedEvent
  • 华为HCIE课堂笔记第十三章 IPv6地址配置
  • 计算机网络-VLAN间通信
  • vue3的福音框架arco.design
  • BSP视频教程第29期:J1939协议栈CAN总线专题,源码框架,执行流程和应用实战解析,面向车通讯,充电桩,模组通信等(2024-01-08)
  • Java lambda表达式如何自定义一个toList Collector
  • 【hcie-cloud】【18】华为云Stack灾备服务介绍【容灾解决方案介绍、灾备方案架构介绍、管理组件灾备方案介绍、高阶云服务容灾简介、缩略词】【下】
  • linux建立软链接——以matlab为例