https://leetcode.com/problems/move-zeroes/
双指针,类似算法导论的快排。
public class Solution {
public void moveZeroes(int[] nums) {
if (nums == null || nums.length <= 1) {
return;
}
int beg = -1;
int cur = 0;
while (cur < nums.length) {
if (nums[cur] != 0) {
swap(nums, ++beg, cur);
}
cur++;
}
}
private void swap(int[] nums, int i1, int i2) {
int temp = nums[i1];
nums[i1] = nums[i2];
nums[i2] = temp;
}
}