移动零#283(简单)
https://leetcode.cn/problems/move-zeroes/
class Solution {
public void moveZeroes(int[] nums) {
//法一:双指针两次遍历.时间复杂度O(n),空间复杂度O(1)
if (nums == null) {
return;
}
int n = nums.length;
//i是指向零的下标
int i = 0;
for (int j = 0; j < n; j++) {
//第一次先用非0值填充前面的位置
if (nums[j] != 0) nums[i++] = nums[j];
}
//第二次就把后面的都填充0
for (int j = i; j < n; j++) {
nums[j] = 0;
}
}
}
//=====================================================
class Solution {
public void moveZeroes(int[] nums) {
//法一:双指针一次遍历.时间复杂度O(n),空间复杂度O(1)
if (nums == null) {
return;
}
int n = nums.length;
//i是指向零的下标
int i = 0;
for (int j = 0; j < n; j++) {
if (nums[j] != 0) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
i++;
}
}
}
}