283 LeetCode Как сдвинуть нули в конец без копии массива | Move Zeroes | Два указателя in-place JS
Самый чистый способ решить Move Zeroes: два указателя. read это глаз: он просто идёт по массиву и ищет ненулевые. write это рука: она кладёт найденные числа плотно в начало, сохраняя порядок. Потом оставшийся хвост заполняем нулями. Всё. In-place. Без копий. Без магии. Leetcode задача 283: https://leetcode.com/problems/move-zeroes/ Гитхаб: https://github.com/qa-tester22/Algorithms-and-Data-Structures/blob/main/1_hw_leetcode_283_%20move_zeroes.js телеграм обсуждения: https://t.me/qa_english_time Мой Литкод: https://leetcode.com/u/qatester22/ 283. Move Zeroes Given an integer array nums, move all 0's to the end of it while maintaining the relative order of the non-zero elements. Note that you must do this in-place without making a copy of the array. Example 1: Input: nums = [0,1,0,3,12] Output: [1,3,12,0,0] Example 2: Input: nums = [0] Output: [0] Constraints: 1 ◀️= nums.length ◀️= 10^4 -2^31 ◀️= nums[i] ◀️= 2^31 - 1 283. Переместите нули Дана целочисленная матрица nums. Переместите все 0 элементы в конец матрицы, сохраняя при этом относительный порядок ненулевых элементов. Обратите внимание , что это необходимо сделать непосредственно в массиве, не создавая его копию. Что мы используем в коде let - это переменная с блочной областью видимости, не протечёт наружу как var. Мы изменяем значения переменной write, read, i - поэтому не можем объявить их с const. Мы меняем nums[index] напрямую, поэтому решение in-place. JSON.stringify(nums) используем чтобы красиво вывести массив как строку в логах. #leetcode #javascript #алгоритмы #собеседование #двеукказателя #двауказателя
Название:
283 LeetCode Как сдвинуть нули в конец без копии массива | Move Zeroes | Два указателя in-place JS
Категория:
Разное