- 一、题目描述
- 二、示例
- 三、难度
- 四、代码
- C++版
- 法一
- 法二
- Java版
四、代码 C++版 法一简单
class Solution {
public:
void moveZeroes(vector& nums) {
int index = 0, p = 0;
while (p < nums.size()) {
if (nums[p] != 0) {
while(nums[index] != 0 && index < p) {
++index;
}
if(nums[index] == 0) {
nums[index++] = nums[p];
nums[p] = 0;
}
}
++p;
}
}
};
法二
void moveZeroes(vectorJava版& nums) { int left = 0, right = 0; while (right < nums.size()) { if(nums[right] != 0) { nums[left] = nums[right]; ++left; } ++right; } while (left < nums.size()) { nums[left] = 0; ++left; } }
import java.util.*;
public class Solution {
public static void moveZeroes(int[] nums) {
int fast = 0, slow = 0;
while (fast < nums.length) {
if (nums[fast] != 0) {
nums[slow] = nums[fast];
++slow;
}
++ fast;
}
for(;slow < nums.length;++slow) nums[slow] = 0;
}
public static void main(String[] args) {
int[] arr = new int[]{1,1,0,2,2,3,2,2};
//System.out.println(removeElement(new int[]{0,1,2,2,3,0,4,2},2));
moveZeroes(arr);
System.out.println(Arrays.toString(arr));
}
}



