2018年5月16日 星期三

Leetcode - 283. Move Zeroes

Question:
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.

Example:
Input: [0,1,0,3,12]
Output: [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.

Solution:
void moveZeroes(int* nums, int numsSize) {
    int i, count = -1;
    
    for(i=0; i<numsSize; i++)
    {
        if(nums[i] != 0)
        {
            count++;
            nums[count] = nums[i];
        }
    }
    count++;
    for(count; count<numsSize; count++)
        nums[count] = 0;
}

沒有留言:

張貼留言