Scott's Blog

学则不固, 知则不惑

0%

算法题:移动0

📌 给定一个数组,将所有其中的 0,移动到末尾。Leetcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my_arr = [1, 2, 0, 3, 12, 0, 0, 0, 2]


def move_zero(arr):
"""数组:利用快慢指针交换值.
"""
zero_idx = 0 # 慢指针,其数值表示0所在的位置
for i in range(len(arr)):
# 要做的操作与慢指针移动的条件
# 若不满足慢指针移动条件,慢指针停留不动,快指针继续移动
if arr[i] != 0:
arr[i], arr[zero_idx] = arr[zero_idx], arr[i]
zero_idx += 1
# print(f"{arr}, i:{i}, zero_idx:{zero_idx}")

return arr

move_zero(my_arr)