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

day-41 零钱兑换

在这里插入图片描述
思路
动态规划的思想,创建一个长度为amount的数组arr,arr[i]表示当amount=i时的最少硬币数

解题过程
arr初始化值为Integer.MAX_VALUE,再令arr[0]=0,arr[coins[j]]=1(0<=j<=coins.length),然后i从1向后遍历(i=coins[j]时跳过),当i-coins[j]>0&&arr[i-coins[j]]!=Integer.MAX_VALUE时,则arr[i]=Math.min(arr[i],arr[i-coins[j]]+1)
最后如果arr[amount]=Integer.MAX_VALUE,返回-1
飞则返回arr[amount]

Code

class Solution {public int coinChange(int[] coins, int amount) {int arr[]=new int[amount+1];Arrays.fill(arr,Integer.MAX_VALUE);int len=coins.length;arr[0]=0;for(int i=0;i<len;i++){if(coins[i]<=amount)arr[coins[i]]=1;}for(int i=1;i<=amount;i++){if(arr[i]!=1){for(int j=0;j<len;j++){if(i-coins[j]>0&&arr[i-coins[j]]!=Integer.MAX_VALUE){arr[i]=Math.min(arr[i],arr[i-coins[j]]+1);}}}}if(arr[amount]!=Integer.MAX_VALUE)return arr[amount];else return -1;}
}作者:菜卷
链接:https://leetcode.cn/problems/coin-change/solutions/2894860/ling-qian-dui-huan-by-ashi-jian-chong-da-m3vm/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http://www.mrgr.cn/news/11640.html

相关文章:

  • 【原创教程】电气制图01:启航EPLAN电气设计
  • 服务器机房与数据中心的区别?
  • 【ORACLE】如何使用EXPLAIN PLAN来分析 listagg() 函数的性能瓶颈?
  • 力扣1862.向下取整数对和
  • layui栅格布局设置列间距不起作用
  • DRF——Filter条件搜索模块
  • 在银河麒麟服务器V10上源码编译安装mysql-5.7.42-linux-glibc2.12-x86_64
  • 【Linux】冯诺依曼体系|操作系统概念
  • 前端技巧——iframe + postMessage进行页面通信
  • ECMAScript 6 基础
  • 什么是数据分析,企业数据分析的流程是什么?
  • IO进程线程 0827作业
  • 计算机网络-2-tcpip协议
  • npm阿里云制品仓库
  • 【笛卡尔积】深入理解笛卡尔积及其在SQL中的应用
  • React多功能管理平台项目开发全教程
  • 第三十二天学习笔记
  • EmguCV学习笔记 VB.Net 6.3 轮廓外接多边形
  • 关于多参数/排列组合的结果分配
  • 【LLM之Data】SKYSCRIPT-100M论文阅读笔记