给定一个数组,请你实现将所有 0 移动到数组末尾并且不改变其他数字的相对顺序。
数据范围:数组长度满足 ,数组中的元素满足
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param numsLen int nums数组长度 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ int* moveZeroes(int* nums, int numsLen, int* returnSize ) { // write code here int *ans=(int *)malloc(sizeof(int)*2000); *returnSize=numsLen; int k=0; //int j=numsLen; int i=0; for(k=0;k<numsLen;k++){ if(nums[k]!=0){ ans[i++]=nums[k]; } } for(int j=i;j<numsLen;j++) ans[j]=0; // for(k=0;k<numsLen;k++){ // if(nums[k]==0){ // ans[j++]=0; // } // else{ // ans[i++]=nums[k]; // } // } // memmove(ans+i, ans+numsLen,(j-numsLen)*sizeof(int)); return ans; }