"""
零的移动
给定一个数组,将所有0移动到数组的未尾,
同时,保持非零元素的相对顺序。
必须在不复制数组的情况下进行操作。
"""
def move_zero(nums):
"""
将列表中的所有0移动到末尾,同时保持非零元素的相对顺序不变。
参数:
nums: 一个整数列表。
该函数不返回任何值,直接在输入的列表上进行修改。
"""
# 初始化左右指针,分别指向当前已排列好的非零元素的尾部和待检查的元素
length = len(nums)
left = 0
right = 0
# 遍历列表,将非零元素依次放到数组的前部
while right < length:
# 当遇到非零元素时,将其与左指针所指元素交换,并将左指针向后移动
if nums[right] != 0:
nums[left], nums[right] = nums[right], nums[left]
left += 1
right += 1
# 测试函数
arr = [0, 1, 0, 3, 12, 0, 8, 6]
move_zero(arr)
print(arr)

创想未来
评论前必须登录!
注册