LeetCode 初級 - 移動零(目前我看到的最簡潔簡單的代碼)

移動零

給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。

示例:

輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]

說明:

  1. 必須在原數組上操作,不能拷貝額外的數組。
  2. 儘量減少操作次數。

分析

維護index,記錄非0數字應當存放的位置。

代碼

void moveZeroes(int* nums, int numsSize)
{
    int index = 0;
    for(int i =0; i< numsSize; i++)
    {
        if(nums[i]!=0)
        {
            nums[index]= nums[i];
            index ++;
        }
    }
    while(index<numsSize)
    {
        nums[index++] = 0;
    }

    return ;
}

轉自:

https://blog.csdn.net/whdAlive/article/details/80356495

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章