描述
給定一個包含紅,白,藍且長度為 n 的陣列,將陣列元素進行分類使相同顏色的元素相鄰,并按照紅、白、藍的順序進行排序,
我們可以使用整數 0,1 和 2 分別代表紅,白,藍,
說明
不能使用代碼庫中的排序函式來解決這個問題,
排序需要在原陣列中進行,
樣例
- 樣例 1:
輸入 : [1, 0, 1, 2]
輸出 : [0, 1, 1, 2]
解釋 : 原地排序,
挑戰
一個相當直接的解決方案是使用計數排序掃描2遍的演算法,
首先,迭代陣列計算 0,1,2 出現的次數,然后依次用 0,1,2 出現的次數去覆寫陣列,
你否能想出一個僅使用常數級額外空間復雜度且只掃描遍歷一遍陣列的演算法?
決議
sortColors=function (nums) {
return nums.sort()
}
運行結果


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/16798.html
標籤:java
