分析
这道题可以使用双指针的知识来解答,先遍历nums数组,然后判断不为0的元素,将不为0的元素用一个tmp来存储,再定义一个新指针用来存储下一个不为0的元素的索引,以此类推。具体代码如下。
代码
public class demo{
public int[] moveZeroes(int[] nums){
//如果输入的数组为空直接返回一个空数组
if(nums == null || nums.lengths == 0){
return new int[]{};
}
//来个j用来存储下一个不为0的元素
int j = 0;
//遍历nums
for(i = 0; i < nums.lengths; i++){
if(nums[i] != 0){
int tmp = nums[i]; // 暂存nums[i]的值
nums[i] = nums[j];
nums[j] = tmp;
j++;
}
}
return nums;
}
}