题目描述:
双指针解法:使用两个变量i,j表示数组元素的下标,j指向值为0的位置,i进行移动,如果i的值不为0,就要与j指向的值进行交互,j向后移动
class Solution {
public void moveZeroes(int[] nums) {
int j = 0;
for(int i=0; i<nums.length; i++) {
if(nums[i]!=0) {
int tmp = nums[j];
nums[j] = nums[i];
nums[i] = tmp;
j++;
}
}
}
}
提交结果:
时间复杂度分析:i指针只遍历一遍数组,一个循环,时间复杂度为O(n)