切換
舊版
前往
大廳
主題

LeetCode - 283. Move Zeroes 解題心得

Not In My Back Yard | 2020-09-28 00:00:11 | 巴幣 0 | 人氣 139

題目連結:


題目意譯:
給定一陣列 nums ,撰寫一個函式去移動所有的「0」到尾端,同時保持著非 0 元素的相對順序。

注:
你必須在不複製陣列的情況下,原地(In-Place)達成要求。
且應最小化操作的數量。



範例測資:
範例:
輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]


解題思維:
掃過一次陣列,並用一個變數 zeros 紀錄目前的 0 之個數。

當遇到陣列中第 i 個數字是 0 時,zeros + 1 ;當不是 0 時,則該數會往前移動,而最終位置會坐落於第 i - zeros 的位置。

掃完陣列之後,將陣列最尾端 zeros (此時是原陣列的 0 之總數)個元素全部變為「0」,即可完成要求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作