題目連結:
題目意譯:
給定一陣列 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」,即可完成要求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。