283. 移动零(Move Zeroes)
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:
必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。
在真实的面试中遇到过这道题?
Python3 实现
双指针
# @author:leacoder
# @des: 双指针 移动零
'''
i:用于遍历 整个数组
j: 指向非0数位置
遍历数组,将非0数填入j所在位置j后移,将 j位置到最后补0
'''
class Solution:
def moveZeroes(self, nums: List[int]) -> None:
length = len(nums) # 数组长度
notzeroIndex = 0 # 移动后 非零元素起始位置
for i in range(length):
if nums[i] != 0:
nums[notzeroIndex] = nums[i]
if i != notzeroIndex: # 不等置零
nums[i] = 0
notzeroIndex = notzeroIndex + 1
GitHub链接:
https://github.com/lichangke/LeetCode
CSDN首页:
https://me.csdn.net/leacock1991
欢迎大家来一起交流学习