leetcode.数组.283移动零-Java
1. 具体题目
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0]
说明:
必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。
2. 思路分析
设置两个指针,zeroHead 始终指向 0 开始的地方,另一个指针遍历整个数组,遇到非 0 数,则将该数组元素值与 zeroHead 处数组元素值(0)交换。
3. 代码
1 public void moveZeroes(int[] nums) { 2 int zeroHead = 0; 3 for(int i = 0 ;i < nums.length; i++){ 4 if(nums[zeroHead] != 0){ 5 zeroHead++; 6 }else{ 7 if(nums[i] != 0){ 8 int temp = nums[zeroHead]; 9 nums[zeroHead] = nums[i]; 10 nums[i] = temp; 11 zeroHead++; 12 } 13 } 14 } 15 }

浙公网安备 33010602011771号