我一直在玩一个编码游戏,最近发现这个解决方案遇到了编码挑战,但我无法理解它。
我已尝试阅读Math.max
,但我无法绕过它。
此代码中发生了什么?
var n = 6;
var items = [6, 2, 1, 6, 0, 9];
var high = items[0];
var loss = 0;
for (var i = 1; i < n; i++) {
var v = parseInt(items[i]);
high = Math.max(high, v);
loss = Math.max(loss, high - v);
}
console.log(-1 * loss);
&#13;
答案 0 :(得分:0)
在这些情况下,输出以控制变量以更好地了解正在发生的事情非常有用:
var n = 6;
var items = [6, 2, 1, 6, 0, 9];
var high = items[0];
var loss = 0;
for (var i = 1; i < n; i++) {
console.log("[Roll " + i + "]");
var v = parseInt(items[i]);
high = Math.max(high, v);
loss = Math.max(loss, high - v);
console.log("v: " + v + "\nhigh: " + high + "\nloss: " + loss);
}
console.log(-1 * loss);
正如其他人在评论中提到的那样,Math.max
非常简单,只返回给出的最大数量的参数。
例如:
> Math.max(5, 7, 9202902)
< 9202902