close
問題描述
來源:LeetCode第75題
難度:中等
給定一個包含紅色、白色和藍色,一共n個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。
此題中,我們使用整數0、1和2分別表示紅色、白色和藍色。
示例 1:
輸入:nums = [2,0,2,1,1,0]
輸出:[0,0,1,1,2,2]
示例 2:
輸入:nums = [2,0,1]
輸出:[0,1,2]
示例 3:
輸入:nums = [0]
輸出:[0]
示例 4:
輸入:nums = [1]
輸出:[1]
提示:
n == nums.length
1 <= n <= 300
nums[i] 為 0、1 或 2
三指針解決
數組中只有3種數字0,1,2。我們只需要把0往前面移,3往後面移即可。難度不是很大,我們以示例一為例來看個視頻
再來看下代碼

●615,雙指針解兩數相加
●613,雙指針解三數之和
●597,雙指針解驗證回文字符串 Ⅱ
●539,雙指針解刪除有序數組中的重複項
截止到目前我已經寫了600多道算法題了,為了方便大家閱讀,我把部分算法題整理成了pdf文檔,目前有1000多頁,大家可以在下面公眾號「數據結構和算法」中回復關鍵字「pdf」即可獲取下載鏈接。
想學習算法,還可以長按下面二維碼加我微信,我給你拉到算法學習群,在工作中或者學習中遇到不會的問題都可以在群里討論。

全站熱搜