换零钱

来源:互联网 发布:wps office mac版 编辑:程序博客网 时间:2024/04/29 11:20

题目描述

有一个数组changes,changes中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,对于一个给定值x,请设计一个高效算法,计算组成这个值的方案数。

给定一个int数组changes,代表所以零钱,同时给定它的大小n,另外给定一个正整数x,请返回组成x的方案数,保证n小于等于100且x小于等于10000。

测试样例:
[5,10,25,1],4,15
返回:6
测试样例:
[5,10,25,1],4,0
返回:1
class Exchange {public:    int countWays(vector<int> changes, int n, int x) {        // write code here        vector<int>dp(x+1,0);        dp[0]=1;        for(int i=0;i<n;i++)        {            for(int j=changes[i];j<=x;j++)            {                dp[j]+=dp[j-changes[i]];            }        }        return dp[x];       }};
0 0
原创粉丝点击