将数组中的0移到数组最后且其他数字顺序不变
(牛客网—牛客题霸算法篇—NC200)
题目描述
给定一个数组,实现将所有 0 移动到数组末尾并且不改变其他数字的相对顺序。
思路
Java实现
用两个指针i和j,用i寻找0,用j寻找非0数字。
当找到非零数字后,将0和非零数字调换,并且让 i++
要注意判断循环结束的条件,当j等于数组长度时,说明从i往后的位置上没有非零数字了,这个时候姐可以结束循环了。
代码实现
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型一维数组
*/
public int[] moveZeroes (int[] nums) {
// write code here
//int[] result =new int[nums.length];
int i=0;//零
int j=0;//非零
while(i!=nums.length-1){
if(nums[i]!=0){
i++;
}else{
for(j=i;j<nums.length;j++){
if(nums[j]!=0){
nums[i]=nums[j];
nums[j]=0;
i++;
}
}
if(j==nums.length)
return nums;
}
}
return nums;
}
}