# 移动零 ## 题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums = [0] 输出: [0] 提示: 1 <= nums.length <= 104 -231 <= nums[i] <= 231 - 1 进阶:你能尽量减少完成的操作次数吗? ## 思路 - 等价题意 - 将非零移到前面 - 双指针 - 快指针遍历 - 慢指针填充 ## 代码 ```java class Solution { public void moveZeroes(int[] nums) { int l = 0, r = 0; for (; r < nums.length; r++) { if (nums[r] != 0) { int tmp = nums[r]; nums[r] = 0; nums[l] = tmp; l++; } } } } ```