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

如何解决HackerRank的Jumping on the Clouds问题?JavaScript代码提交失败排查

代码问题分析

你的代码存在以下几处核心逻辑错误,导致提交失败:

  • 边界处理错误:当i已经是数组最后一个下标时,你仍然取next = c[0],此时已经到达终点无需再计算跳跃,会导致多余的跳跃次数被统计。
  • 步长计算错误:for循环每次执行结束会自动执行i++,你在循环内额外给i加3或者加2,会导致下标跳转远超预期。比如你想从下标i跳2步到i+2,只需要在循环内给i加1,加上循环自带的i++刚好到i+2,而你当前写的i = i+3会直接跳到i+4的位置,完全不符合题目要求。
  • 跳跃优先级逻辑错误:题目要求最少跳跃次数,应该优先判断能不能跳2步(只要i+2位置的云是0就跳2步,否则跳1步),你当前先判断i+1的逻辑反而会增加不必要的跳跃次数。
  • 条件判断冗余:if(!next && next === 0)等价于判断next为0,两个条件重复没有意义。
修正后的参考代码
function jumpingOnClouds(c) {
    let jumps = 0;
    let i = 0;
    // 到达最后一个云就停止,不需要再跳跃
    while (i < c.length - 1) {
        // 优先跳2步,保证总跳跃次数最少
        if (i + 2 < c.length && c[i + 2] === 0) {
            i += 2;
        } else {
            // 不能跳2步就跳1步
            i += 1;
        }
        jumps += 1;
    }
    return jumps;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:24:01