c++ - 函数不返回值,而在 C++ 中使用向量
问题描述
下面的函数在使用整数数组(minNumCoins)时工作正常,但在使用向量而不是数组时不返回任何内容。谁能告诉我为什么?
int dp_change(const vector<int> &coins, int money, int n){
//vector<int> minNumCoins(n);
int minNumCoins[n];
int numCoins = 0;
minNumCoins[0] = 0;
for( int m = 1; m <= money; m++){
minNumCoins[m] = 100000;
for(int i = 0; i < coins.size(); i++){
if(m >= coins[i]){
numCoins = minNumCoins[m - coins[i]] + 1;
if(numCoins < minNumCoins[m]){
minNumCoins[m] = numCoins;
}
}
}
}
//return minNumCoins.at(money);
return minNumCoins[money];
}
主功能
int main() {
int n, money;
cin >> money;
cin >> n;
vector<int> coins(n);
for(int i = 0; i < n; i++){
cin >> coins[i];
}
//int num_of_coins = dp_change(coins, money);
cout << "Number of coins = " << dp_change(coins, money, n);
return 0;
}
样本
Input:
> 20 <br>
2 <br>
10 <br>
1
输出:
Number of coins = 2
解决方案
在这段代码中:
for( int m =1 ; m<=money; m++){
minNumCoins[m] = 100000;
m
money
如果>=可能会超出范围n
,它在您的示例输入(money
=20,n
=2)中。结果,您的程序在输出任何内容之前就崩溃了。
推荐阅读
- python - pptx python在表格中设置行高
- date - Parse Date from String: hidden runes
- arrays - 如何在反应中对一组对象进行排序并渲染它们?
- python - 求两条水平重叠曲线之间的积分
- python - 用条件填充缺失值
- html - 无法将消息提示到反应式表单中的必填字段
- python - 对大量文档进行重复数据删除 (Python)
- active-directory - 从 AD 用户和属性在数组中创建报表,并允许属性为空
- python - 基于 pca.explained_variance_ratio_ plot 的累积解释方差似乎太多
- python - 格式化不带小数的货币值