You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请问LeetCode 162中代码nums[-1] = nums[n] = -∞的含义是什么?

LeetCode 162题nums[-1] = nums[n] = -∞代码含义解释

这是该题题解中常见的逻辑约定写法,并非实际可直接运行的代码,作用是简化峰值判定的边界处理逻辑,具体含义如下:

  • 本题的峰值元素定义为严格大于左右相邻元素的元素,题目规则默认数组边界外的元素值为负无穷(-∞):数组第一个元素只要大于第二个元素即可判定为峰值(左侧无元素,默认比-∞大);数组最后一个元素只要大于倒数第二个元素即可判定为峰值(右侧无元素,默认比-∞大)。
  • 代码中的n指代数组nums的总长度,这行写法是约定逻辑上下标为-1的位置(首元素的左邻居)、下标为n的位置(尾元素的右邻居)的值均为-∞。
  • 加入该逻辑约定后,所有位置的峰值判定规则可以完全统一,无需为首尾元素单独写分支判断,直接套用nums[i] > nums[i-1] && nums[i] > nums[i+1]的规则即可。
  • 实际编码时不能直接写这行代码操作数组越界位置,否则会触发越界报错,通常的实现方式是在判断相邻元素值时增加边界判断:如果当前遍历下标是0,左值直接取-∞;如果当前遍历下标是n-1,右值直接取-∞,最终效果和该逻辑约定完全一致。

内容的提问来源于stack exchange,提问作者Linda Lu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:45:02