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

LeetCode数组前缀和问题:输出数组开头多余逗号的排查与解决

问题原因分析

你的代码出现开头多余逗号的问题,本质是数组索引操作错误:

  • 你初始化output为长度等于nums的数组(比如输入长度4时,output初始是[empty × 4]),但循环里i从1开始,一直到nums.length(也就是4),然后给output[i]赋值——这就导致:
    1. output[0]始终未被赋值,保持undefined;
    2. 给output[4]赋值时,JavaScript会自动把数组长度扩展到5,此时数组变成[undefined, 1, 3, 6, 10],在输出时undefined的位置就会显示为开头的空值(逗号前无内容)。
修正方案

把循环的索引逻辑改成从0开始,对应output的每个索引位置:

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var runningSum = function(nums) {
  let output = new Array(nums.length);
  let sum = 0;
  // 从i=0开始遍历到nums.length-1
  for (let i = 0; i < nums.length; i++) {
    sum += nums[i];
    output[i] = sum;
  }
  return output;
};

或者更简洁的写法(直接在原数组上修改,节省空间,LeetCode也允许):

var runningSum = function(nums) {
  for (let i = 1; i < nums.length; i++) {
    nums[i] += nums[i-1];
  }
  return nums;
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:58:09