讨论/建议反馈/283题:移动零。测试用例结果与本地结果不一致/
283题:移动零。测试用例结果与本地结果不一致

在跑官方测试用例的时候发现的,官方预期值和我本地跑的一致,问题是官方的输出和我本地的输出不一致。
同一份代码,系统windows10, 浏览器版本是Chrome80.0.3987.132(正式版本)(64 位)。

这是测试用例的输入参数:
[-959151711,623836953,209446690,-1950418142,1339915067,-733626417,481171539,-2125997010,-1225423476,1462109565,147434687,-1800073781,-1431212205,-450443973,50097298,753533734,-747189404,-2070885638,0,-1484353894,-340296594,-2133744570,619639811,-1626162038,669689561,0,112220218,502447212,-787793179,0,-726846372,-1611013491,204107194,1605165582,-566891128,2082852116,0,532995238,-1502590712,0,2136989777,-2031153343,371398938,-1907397429,342796391,609166045,-2007448660,-1096076344,-323570318,0,-2082980371,2129956379,-243553361,-1549960929,1502383415,0,-1394618779,694799815,78595689,-1439173023,-1416578800,685225786,-333502212,-1181308536,-380569313,772035354,0,-915266376,663709718,1443496021,-777017729,-883300731,-387828385,1907473488,-725483724,-972961871,-1255712537,383120918,1383877998,1722751914,0,-1156050682,1952527902,-560244497,1304305692,1173974542,-1313227247,-201476579,-298899493,-1828496581,-1724396350,1933643204,1531804925,1728655262,-955565449,0,-69843702,-461760848,268336768,1446130876]

以下是跑官方测试用例时的截图。
微信截图_20200312151618.png

以下是我本地的输出截图,参数是使用该测试用例的参数。
微信截图_20200312152043.png
微信截图_20200312152206.png

下方是我的执行代码,使用JavaScript语言。

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
var moveZeroes = function(nums) {
    if (nums.length <= 1) {
        // 数组长度小于2则不需要排序,直接返回
        return nums;
    }
    // 获取0的个数
    const ZeroArySize = nums.filter(num => num === 0).length

    // 如果nums数组元素全部都是0 或者 nums数组不存在元素0
    if (ZeroArySize === nums.length || ZeroArySize === 0) {
        // 则直接返回原数组
        return nums;
    }
    // 先排序,把为0的都排在队列首部 
    nums.sort((a, b) => {
        if (a === 0) {
            return -1;
        }
        if (b === 0) {
            return 1;
        }
        // 题目要求保持非0元素的“相对顺序”,故位置不变
        return 0;
    });

    // 如果首位是0
    while(nums[0] === 0) {
        // 移除首位,并将其传入队列末尾 
        nums.push(nums.shift());
    }

    return nums;
};
展开讨论
共 2 个讨论
@return {void} Do not return anything, modify nums in-place instead.

您好,刷题学习中遇到问题,可通过阅读「题解」解决做题中的一些困惑。力扣(LeetCode)题目 / 题解快速反馈通道开始试行,也可 点击这里 提交反馈,以获得更好的支持哟~