Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的Move zero函数在leetcode中的答案是错误的?_Javascript - Fatal编程技术网

Javascript 为什么我的Move zero函数在leetcode中的答案是错误的?

Javascript 为什么我的Move zero函数在leetcode中的答案是错误的?,javascript,Javascript,我在leetcode工作 我写了一个函数来求解,但leetcode说这是一个错误的答案 有人能看出我的代码有什么问题吗 要求:原始数组必须经过变异 输入:[0,1,0,3,12] 输出:[1,3,12,0,0] 输入:[2,1] 输出:[1,2] 这是我的JS: var moveZeroes=functionnums{ var ZeroArray=[] forlet i=0;ia-b forlet j=0;j 将删除并丢弃当时num中第0个索引中存在的任何内容。如果num不是0,则可能更容易推送

我在leetcode工作

我写了一个函数来求解,但leetcode说这是一个错误的答案

有人能看出我的代码有什么问题吗

要求:原始数组必须经过变异

输入:[0,1,0,3,12]

输出:[1,3,12,0,0]

输入:[2,1]

输出:[1,2]

这是我的JS: var moveZeroes=functionnums{ var ZeroArray=[] forlet i=0;ia-b forlet j=0;j

将删除并丢弃当时num中第0个索引中存在的任何内容。如果num不是0,则可能更容易推送到其他数组,然后在末尾合并数组。无排序:

var moveZeroes=functionnums{ var ZeroArray=[] var非零数组=[]; 对于let i=0;iconsole.logmoveZeroes[0,1,0,3,12]//应该使用splice remove zero返回[1,3,12,0,0]并对加香料的值进行计数。在循环中,将数组中的零推到与计数相等的位置

var a=[0,1,0,3,12]; var计数=0; a、 前额疼痛=>{ ife==0{ a、 a.indexOfe,1 计数++ }}
对于var i=0;iArray.shift从数组中删除第一个元素,您很可能希望使用Array.i,1

使用filter筛选所有非零元素,然后将剩余的数组大小附加为零

let arr = [0,1,0,3,12];
let filtered  = arr.filter(item => item !== 0);
let result = [...filtered, ...(new Array(arr.length - filtered.length).fill(0))]
console.log(result);

可以采用单循环方法,在下一个索引中使用附加变量来交换值

根据规范要求,这种方法在现场工作

/** *@param{number[]}nums *@return{void}不返回任何内容,改为就地修改NUM。 */ var moveZeroes=functionnums{ var i,j=0; 对于i=0;i=0;i-{ 如果b[i]==0{ b、 第一,1; b、 push0; } } 返回b; }
console.logmoveZeroa;谢谢。但我更改了它并在leetcode中运行了代码,我的代码没有得到另一个输出。你能帮我解决吗?我已经编辑了这个问题。我在leetcode中运行了你的第一个代码,你的输出是错误的。这里是链接:你的问题没有说必须对原始数组进行变异。如果它确实需要变异的话,然后使用.sort。您应该发布问题中的所有要求。问题本身有什么缺陷?您可以发布一个输出不正确的示例输入吗?发布问题时,最好详细说明问题中的要求。如果您需要保留原始顺序,您可以迭代并拼接零,然后将其侧向推送您是否在这个答案中使用javascript?还是在leetcode中使用javascript?
let arr = [0,1,0,3,12];
let filtered  = arr.filter(item => item !== 0);
let result = [...filtered, ...(new Array(arr.length - filtered.length).fill(0))]
console.log(result);
here is code to remove zeros in c++


void pushZerosToEnd(int arr[], int n) 
    { 
        int count = 0; 
        for (int i = 0; i < n; i++) 
            if (arr[i] != 0) 
                arr[count++] = arr[i]; 
        while (count < n) 
            arr[count++] = 0; 
    } 

int main() 
{ 
    int arr[] = {1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0, 9}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    pushZerosToEnd(arr, n); 
    cout << "Array after pushing all zeros to end of array :n"; 
    for (int i = 0; i < n; i++) 
        cout << arr[i] << " "; 
    return 0; 
}