Easy-22

xiaoxiao2021-02-28  83

leetcode   283. Move Zeroes          

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.

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.

WA:

void moveZeroes(int* nums, int numsSize) {     for(int i=numsSize-1;i>=0;i--)     {         if(nums[i]==0)         {             continue;         }         int j;         for(j=i-1;j>=0;j--)         {             if(nums[j]==0)             {                 int k=nums[i];                 nums[i]=nums[j];                 nums[j]=k;                 break;             }         }         if(j==-1)         {             return nums;         }     }     return nums; }

Input:[0,1,0,3,12]

Output: [3,1,12,0,0] Expected: [1,3,12,0,0] AC: void moveZeroes(int* nums, int numsSize) {     for(int i=0;i<numsSize;i++)     {         if(nums[i]!=0)         {             continue;         }         int j;         for(j=i+1;j<numsSize;j++)         {             if(nums[j]!=0)             {                 int k=nums[i];                 nums[i]=nums[j];                 nums[j]=k;                 break;             }         }         if(j==numsSize)         {             return nums;         }     }     return nums; } tips :刚开始很作死的想要倒着循环,然后错了,后来老老实实从0~numsSize,就AC了

转载请注明原文地址: https://www.6miu.com/read-57389.html

最新回复(0)