数组内部元素操作,将所有0移到后尾

来源:互联网 发布:淘宝怎么买东西最便宜 编辑:程序博客网 时间:2024/05/17 19:22

Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.

void moveZeroes(int* nums, int numsSize) {    int i=0, j=0;    while(i<numsSize) {        if(nums[i]!=0) {            if(i!=j) {                nums[j] = nums[i];                nums[i] = 0;                j++;            } else {                j++;            }        }        i++;    }}
我也是看了大神的才写出来的,觉得很巧妙,主要思路是维持两个pointer i 和 j,在没有遇到0时两个一起移动,遇到0时 j 不动 i 后移,i 在遇到非0数时将 i 和 j 的值调换。


0 0
原创粉丝点击