演算法筆記 面試題 7 顏色分類 荷蘭三色旗問題

2021-10-07 12:17:47 字數 480 閱讀 6718

75. 顏色分類

難度中等472

給定乙個包含紅色、白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。

此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。

注意:

不能使用**庫中的排序函式來解決這道題。

輸入: [2,0,2,1,1,0]

輸出: [0,0,1,1,2,2]

使用兩個指標,0向前移動,2向後移動

void sortcolors(vector& nums) 

}

官方答案: 原理同上 

//荷蘭三色旗問題解

void sortcolors(vector& nums)

}

演算法面試題三

螺旋佇列問題 看清一下數字排列的規律,設1點的座標是 0,0 x方向向右為正,y方向向下為正,列如7的座標是 1,1 2的座標是 0,1 3的座標是 1,1 程式設計實現輸入任意一點座標 x,y 輸出所對應的數字。21 22 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 1...

php面試題 三 演算法

冒泡演算法排序 基本思想 對需要排序的陣列從後往前 逆序 進行多遍的掃瞄,當發現相鄰的兩個數值的次序與排序要求的規則不一致時,就將這兩個數值進行交換。這樣比較小 大 的數值就將逐漸從後面向前面移動。public function bubblesort 快速排序 基本思想 在陣列中挑出乙個元素 一般為...

演算法面試題 帶環鍊錶之靈魂三問!

今天舍友二狗子又去面試了,回來就問我們演算法問題,看來對於ios開發來說演算法是乙個大難題啊!今天是什麼呢?當然是帶環鍊錶的問題了。這就讓我想起了當初的帶環鍊錶三連問!現場慌的不行不行的。一句話解釋 使用快慢指標,同時指向頭節點,slow指標每次走乙個節點,fast指標每次走兩個節點,最終如果兩個指...