首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的最小硬币需求逻辑

我的最小硬币需求逻辑
EN

Stack Overflow用户
提问于 2016-06-13 01:25:26
回答 1查看 36关注 0票数 0

我试着在我的own.But上做硬币找零的问题似乎我的逻辑缺失的地方,请帮助我,我已经评论了我的想法。

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;
vector<int>nom;

int dp[1000004];

int recurse(int v){

  if(dp[v]!=-1)return dp[v];      // If already found something just return
  if(v==0)return 0;        // If value is 0.Minimum changes req is 0.
  if(v<0)return INT_MAX;  // If reached out of bound return MAX.
  int ans=INT_MAX;          // For storing Ans.

  for(int i=0;i<nom.size();i++){
  ans=min(ans,recurse(v-nom[i])+1); //Min  Number of changes req fir val-nom[i]+1 for value val.
  }
dp[v]=ans;
return dp[v];
}

int main() {
  int v,n,x;
  cin>>v>>n;        // Value for which I have to find change,No. of change available

  for(int i=0;i<n;i++){
  cin>>x;
  nom.push_back(x);  // changes
  dp[x]=1;       // If we want x money only 1 change req so dp[x]=1
  }

  int mincoins=0;     // For storing answer
  mincoins=recurse(v); // Answer for value v.
  cout<<mincoins<<endl;
  }
  return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2016-06-14 00:23:01

这里唯一的问题是您忘记将dp[]的所有元素初始化为-1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37777081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档