我正在尝试解决一个难题,该函数必须返回一个长整数并采用int
和List<Long>
作为参数,但我不断遇到以下错误:
Solution.java:32: error: incompatible types: possible lossy conversion from long to int
if (i >= coin) dp[i] += dp[i - coin];
我尝试了不同的转换,但一切都回到了这一点。我的代码如下:
public static long count(int n, List<Long> c) {
long[] dp = new long[n + 1];
dp[0] = 1;
for (long coin : c) {
for (long i = 1; i <= n; i++){
if (i >= coin) dp[i] += dp[i - coin];
}
}
return dp[n];
}
}
答案 0 :(得分:1)
在这里耦合问题:
--query '{ "timestamp" : { "$gt" : 1569890129 } }'
应该是i
而不是int
,因为它是在long
循环中初始化的变量。如果它是for
,则会出现类型不匹配错误。
由于long
存储着c
的实例,因此Long
也应该是coin
现在,由于Long
是i
,而int
是coin
,因此您还需要将两者的差额也转换为Long
int