题目:移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
解题思路:乍一看这个题,创建一个数组,把非0的放在前面,为0的放在后面,输出这个数组,但是题目要求只能在原数组操作,所有优化一下,把数组变为一个变量,在循环中让这个变量递增实现数组相同的作用。
代码实现如下:
class Solution {
public void moveZeroes(int[] nums) {
int j=0;
for(int i=0;i<nums.length;i++){
if(nums[i]!=0){
nums[j++]=nums[i];
}
}
while(j<nums.length){
nums[j++]=0;
}
}
}