diff --git a/algocode/two_pointers/move_zeroes.py b/algocode/two_pointers/move_zeroes.py new file mode 100644 index 0000000..f335960 --- /dev/null +++ b/algocode/two_pointers/move_zeroes.py @@ -0,0 +1,46 @@ +""" +Дан массив nums. Нужно переместить все нули (0) в конец массива, при этом порядок остальных элементов должен сохраниться. + +Необходимо изменять исходный массив напрямую, без создания нового массива для хранения результата. + +Пример 1: + +Ввод: nums = [2,1,0,0,4,0,9] +Вывод: [2,1,4,9,0,0,0] +Пример 2: + +Ввод: nums = [0] +Вывод: [0] +Ограничения: + +len(nums) >= 1 + + + j + i +2,1,4,9,0,0,0 + +i +j +0 + +""" + +def solve(nums): + i, j = 0, 0 + nums_len = len(nums) + for j in range(0, nums_len): + if nums[i] != 0: + i += 1 + j += 1 + elif nums[j] == 0: + j += 1 + else: + nums[i] = nums[j] + nums[j] = 0 + i+=1 + j+=1 + return nums + +print(solve([2,1,4,9,0,0,0])) +print(solve([0]))