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

LeetCode旋转数组题:console.log值正确但函数return结果错误怎么办

这道LeetCode题的判题逻辑要求你原地修改传入的nums数组,不需要返回新数组。你本地测试时拿到的是return的x的值,所以结果正确,但LeetCode判题时不会读取函数返回值,只会校验你传入的nums数组的最终内容。你当前的代码只是基于nums拷贝出了新数组x做修改并返回,完全没有改动原nums数组,所以系统读取原数组校验结果时,拿到的还是未修改的初始值,自然就会报错。

你只需要在return x之前,把x的内容覆盖到原nums数组即可,参考修改代码:

var rotate = function(nums, k) {
    let n=0
    let temp = []
    let l =nums.length
    k=k%l
    let x = JSON.parse(JSON.stringify(nums))
    while(n<k){
        let last = x[l-1]
        for(let i=1;i<l;i++){
            temp[i] = x[i-1]
        }
        temp[0]=last
        x=JSON.parse(JSON.stringify(temp))
        n++
    }
    // 新增代码:覆盖原数组内容
    for (let i = 0; i < l; i++) {
        nums[i] = x[i]
    }
};

你也可以用数组splice方法简化原数组替换逻辑,替换上面的for循环即可:

nums.splice(0, nums.length, ...x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:06:03