Я пытаюсь решить следующую проблему с leetcode в JS: Проблема MoveZeroes
Задача состоит в следующем: Для массива nums
написать функцию, чтобы переместить все 0
до конца, сохраняя относительный порядок ненулевых элементов.
1. Вы должны сделать это на месте, не создавая копию массива.
2.Сведите к минимуму общее количество операций.
Пример:
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
В моем коде я получаю желаемый вывод на консоли прямо перед концом функции, но это меня отвергают, и я хотел бы понять, почему.
Это мой код:
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var moveZeroes = function(nums) {
let i = 0
let length = nums.length
while (i < length){
if(nums[i] === 0) {
nums = nums.slice(0, i).concat(nums.slice(i+1),0)
length--
continue;
}
length--
i++
}
console.log(nums) //logs the desired result
};
Я видел подобные вопросы:
Использование сращивания
Этот не делает это на месте
Не делать это на месте либо
Итак, я понимаю, что это может быть дубликатом, но я был бы признателен за прямой отзыв о моем коде , Спасибо!