我认为将最大值初始化为-Infinity,但事实并非如此。
如果无穷大被认为是一个数字类型,为什么我不能在比较中使用它?
var windowStart =0, sum =0, max = -Infinity
for(windowEnd=0;windowEnd<k-1;windowEnd++)
{
sum += arr[windowStart]
if(windowEnd>k-1)
{
if(sum > max)
max = sum
sum -= arr[windowStart]
windowStart += 1
}
}
return max;
多亏了社区,我注意到我在发布问题时仓促行事,没有进行适当的调试。感谢大家的快速回答。
您可以随心所欲地使用Infinity:
Math.min(Infinity, 10)
// => 10
Infinity < 10
// => false
即使在原生Math.min和Math.max函数实现中,它看起来确实已经被用作默认的最小值和最大值
Math.min(); // Infinity
Math.max(); // -Infinity