题目描述:
给定一个数组 nums
,编写一个函数将所有 0
移动到数组的末尾,同时保持非零元素的相对顺序。
示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。
思路分析:
public static void moveZeroes(int[] nums) { //数组中零的数量 int count=0; for(int i=0;i<nums.length;i++){ //依次遍历,为0则count++ if(nums[i]==0){ count++; }else{ //否则交换当前值与num[i-count]的位置 int temp=nums[i]; nums[i]=nums[i-count]; nums[i-count]=temp; } } }