============ 283. 移动零 ============ https://leetcode-cn.com/problems/climbing-stairs/ 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: :: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: - 必须在原数组上操作,不能拷贝额外的数组。 - 尽量减少操作次数。 ----------------------- 采用双指针,慢指针记录当前值为 0 的位置,快指针遍历 nums,遇到非 0 元素时,交换快慢指针位置对应的元素 .. note:: - 时间复杂度: O(n) - 空间复杂度: O(1) ------------------------ .. code-block:: python class Solution(object): def moveZeroes(self, nums): """ :type nums: List[int] :rtype: None Do not return anything, modify nums in-place instead. """ zero = 0 for j, n in enumerate(nums): if n == 0: continue nums[zero], nums[j] = nums[j], nums[zero] zero += 1