在调用Math.min函数时,其中一个参数是数组元素,但是数组出界却能正常运行,为啥呢
for (int i = 1; i <= amount; i++) {
for (int j = 0; j < coins.length; j++) {
if (coins[j] <= i) {
// dp[i-coins[j]]数组出界了,但是没有报错,而且能够以正常的逻辑运行
dp[i] = Math.min(dp[i], dp[i - coins[j]] + 1);
}
}
}
调试中发现有出界异常,但运行结果正确
想知道
i<=amount可能导致了越界。但如果越界后的内容是可以访问的,那从程序也是可以继续运行的。