移动零
https://www.lintcode.com/problem/539/description?utm_source=sc-libao-ql
描述
给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序
1.必须在原数组上操作 2.最小化操作数
样例
例1:
输入: nums = [0, 1, 0, 3, 12],输出: [1, 3, 12, 0, 0].例2:
输入: nums = [0, 0, 0, 3, 1],输出: [3, 1, 0, 0, 0].解题思路:
双指针,遇到非零就填入前面数组,最后空余位置0填充。
也可以直接算出来0的数目,nums.count(0).然后前面移动所有非零数字,后面填充0。
```python
from typing import (
    List,
)
class Solution:
    """
    @param nums: an integer array
    @return: nothing
    """
    def move_zeroes(self, nums: List[int]):
        # write your code here
        idx = 0
        for i in nums:
            if i:
                nums[idx] = i
                idx += 1
        while idx < len(nums):
            nums[idx] = 0
            idx += 1
```Last updated
Was this helpful?