难度简单997收藏分享切换为英文接收动态反馈
给定一个数组
nums
,编写一个函数将所有0
移动到数组的末尾,同时保持非零元素的相对顺序。示例:
输入:[0,1,0,3,12]
输出:[1,3,12,0,0]
说明:
- 必须在原数组上操作,不能拷贝额外的数组。
- 尽量减少操作次数。
class Solution {
public void moveZeroes(int[] nums) {
int index=0;
// int count=0;
for(int i=0;i<nums.length;i++)
{
if(nums[i]!=0)
{
nums[index]=nums[i];//直接把每个数字放好,然后添加0
index++;
}
// else
// count++; 数组长度不变 不需要计算0的个数
}
for(int i=index;i<nums.length;i++)//i=index是因为放好最后一个数字后,又index++了。
nums[i]=0;
}
}