首页 > 其他分享 >322.coin-change 零钱兑换

322.coin-change 零钱兑换

时间:2022-10-05 17:35:44浏览次数:69  
标签:int MAX coins 322 INT change coin dp

问题描述

322.零钱兑换

解题思路

首先,递推关系从最大变成了最小,即dp[j] = min(dp[j], dp[j - coins[i]] + 1)

同时,要注意对dp数组的初始化问题,为了保证j - coins[i]无法组成时,dp[j]选择的仍是上一次i循环的dp[j],因此要将dp数组初始化为INT_MAX,同时dp[0] = 0

要注意INT_MAX + 1 < INT_MAX(在C++中)

代码

#include <limits.h>
#include <vector>
using std::vector;
class Solution {
  private:
    int min(int a, int b) {
        return a < b ? a : b;
    }

  public:
    int coinChange(vector<int> &coins, int amount) {
        if (amount == 0)
            return 0;
        vector<int> dp(amount + 1, INT_MAX);
        dp[0] = 0;
        for (int i = 0; i < coins.size(); i++) {
            for (int j = coins[i]; j <= amount; j++) {
                // 因为可能执行+1的操作, 所以判断dp[j - coins[i]]而不是dp[j]
                if (dp[j - coins[i]] != INT_MAX)
                    dp[j] = min(dp[j], dp[j - coins[i]] + 1);
                // else
                //     dp[j] = dp[j - coins[i]];
            }
        }
        return dp[amount] != INT_MAX ? dp[amount] : -1;
    }
};

标签:int,MAX,coins,322,INT,change,coin,dp
From: https://www.cnblogs.com/zwyyy456/p/16755946.html

相关文章

  • P3226 [HNOI2012]集合选数 题解
    纪念一下30紫and500AC首先先膜拜一下神仙出题人,这题太神仙了。题意:要构造一个集合,使得$x\inA$,满足$2x\notinA$且$3x\notinA$,求\(\{1,2,\ldots,n\}\)......
  • exchange邮件爬虫
    #!/usr/bin/python3#coding=utf8from__future__importprint_functionimportshutilfromexchangelibimportCredentials,Account,Configuration,DELEGATE,Fi......
  • 07-RabbitMQ核心API-Direct Exchange
    DirectExchange简介所有发送到directexchange的消息被转发到Routekey中指定的Queue注意:Direct模式可以使用RabbitMQ自带的Exchange(defaultexchange),所以不需......
  • 08-RabbitMQ核心API-Topic Exchange
    TopicExchange简介所有发送到TopicExchange的消息被转发到所有关心RouteKey中指定Topic的Queue上Exchange将RouteKey和某Topic进行模糊匹配,此时队列需要绑定一个T......
  • 09-RabbitMQ核心API-Fanout Exchange
    FanoutExchange简介不处理路由键,只需要简单的将队列绑定到交换机上发送到交换机的消息都会被转发到与该交换机绑定的所有队列上Fanout交换机转发消息是最快的......
  • 06-RabbitMQ核心API-Exchange
    Exchange流程图接收消息,并根据路由键转发消息所绑定的队列Exchange属性属性含义name交换机名称type交换机类型[direct|topic|fanout......
  • L10U2-4-Adapting-to-change
    1VocabularyReactingtochangeThisarticleisaboutdealingwithbigchanges.Readthetext,andanswerthequestions.StagesofChangeChangecanbeascar......
  • L10U2-3-Responding-to-proposed-changes
    1VocabularyWhat'sintheoffice?storagespacerecreationroom娱乐室daycarecenter日托中心bicycleparkingyogaroommeetingspacestaffshowers2Express......
  • 20201322陈俊池学习笔记5
    第十一章EXT2文件系统一、知识点归纳11.1EXT2文件系统Linux一直将EXT2作为默认文件系统。EXT3是EXT2的扩展。EXT3中增加的主要内容是一个日志文件,他将文件系统的变更......
  • L10U2-Dealing-with-change
    1ReadingTraditionalvaluesMakinginferencesMakinginferencesisakeyreadingskill.Ifyoucan'tinferwhatawritermeans,youmayhaveanincompleteun......