Add move zeroes solution
This commit is contained in:
parent
8cb497c6b4
commit
6ee4e10ec9
1 changed files with 46 additions and 0 deletions
46
algocode/two_pointers/move_zeroes.py
Normal file
46
algocode/two_pointers/move_zeroes.py
Normal file
|
|
@ -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]))
|
||||||
Loading…
Reference in a new issue