java - 受限硬币找零问题python java转换
问题描述
我有一个 python 函数
https://stackoverflow.com/a/44214566/6301603
它计算可能的硬币变化量。每个硬币都有有限的可用性。我试图理解它以将其转换为java
但我失败了r=
有人可以解释这一行发生了什么吗?
# cs is a list of pairs (c, k) where there's k
# coins of value c.
def limited_coins(cs, n):
r = [1] + [0] * n
for c, k in cs:
# rs[i] will contain the sum r[i] + r[i-c] + r[i-2c] + ...
rs = r[:]
for i in xrange(c, n+1):
rs[i] += rs[i-c]
# This line effectively performs:
# r'[i] = sum(r[i-j*c] for j=0...k)
# but using rs[] so that the computation is O(1)
# and in place.
r[i] += rs[i-c] - (0 if i<c*(k+1) else rs[i-c*(k+1)])
return r[n]
for n in xrange(50):
print n, limited_coins([(1, 3), (2, 2), (5, 3), (10, 2)], n)
谢谢
解决方案
将该行替换为
int[] r = new int[n+1];
r[0] = 1;
for (int i = 1; i < r.length; i++)
r[i] = 0;
推荐阅读
- python - 有没有办法可以使用这样的代码从任何搜索引擎下载图像?
- c++ - 如何读取输入流但不能在 C++ 中提取它们?
- python - 有没有办法在不加载整个文件的情况下读取 .npy 标头?
- php - 使用php将csv文件插入mySql
- maven - 下载 nixpkgs.maven 时修改 $out/maven/conf 中的 settings.xml
- asp.net - Azure IoT Hub 设备与后端的云通信
- javascript - PHP Laravel 未解码 MySQL 表中检索到的项目中的特殊字符 &
- java - Java、xSocket——帧分为两部分——怎么读?
- wikibase - 在下面的 json 片段中,我们看到“错误”类型的警告“成功”:1
- haskell - 在haskell中将浮动类型转换为浮动类型