283.Move Zeroes

来源:互联网 发布:淘宝机械人 编辑:程序博客网 时间:2024/06/06 04:05
/* DescriptionHintsSubmissionsSolutionsGiven 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.For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].Note:    You must do this in-place without making a copy of the array.    Minimize the total number of operations.*///解法一  81%  6msvoid moveZeroes(int* nums, int numsSize) {    int i,begin = 0;    for(i=0;i<numsSize;i++)        if(nums[i]!=0)            nums[begin++]=nums[i];    for(i=begin;i<numsSize;i++)        nums[i]=0;    return nums;}//解法二   81%  6ms  这种解法很好,提供一种了新思路void moveZeroes(int* nums, int numsSize) {    int i,temp,j=0;    for(i=0;i<numsSize;i++)        if(nums[i]!=0)        {            temp = nums[j];            nums[j] = nums[i];            nums[i] = temp;            j++;        }    return nums;}
原创粉丝点击