牛客初級演算法3

2022-09-05 15:18:13 字數 711 閱讀 4151

用陣列結構實現大小固定的佇列和棧

1.實現棧結構:棧結構是先進後出的,只需要乙個陣列和乙個記錄位置的變數size,當進來乙個元素,size就++,出去乙個元素size就--。

2.實現佇列結構:相對棧結構要難搞一些,佇列的先進先出的,需要乙個陣列和三個變數,size記錄已經進來了多少個元素,in記錄剛進來的元素應該放在哪個位置,out表示使用者要求彈出的元素所在的位置。size的作用不止於此,它還是in與out 的操作的關鍵資訊,使得in與out解耦,避免的很多的麻煩,好像書本講的是沒有size這個變數的。當in或者out達到底部的時候就跳回0處。

實現乙個特殊的棧, 在實現棧的基本功能的基礎上, 再實現返

回棧中最小元素的操作。

【要求】

1. pop、 push、 getmin操作的時間複雜度都是o(1)。

2. 設計的棧型別可以使用現成的棧結構。

如何僅用佇列結構實現棧結構?

如何僅用棧結構實現佇列結構?

思路:用兩個棧,乙個是push棧,乙個是pop棧,將資料壓入push棧,要取資料時,將push棧中的資料全部倒入pop棧中,最後將棧頂資料彈出,且只有在pop棧為空時,才能倒

牛客初級班 矩陣

此類問題一般是矩陣的花式列印,只要注意不要糾結於位置的變化,巨集觀思考就可以得出簡潔的 這個問題不要想著索引怎麼變化。比如列印最外圈一行 到 最右面的列結束,列印最外圈一列到最下面的行結束 所以說只要記錄左上角和右下角兩個點就能控制列印一圈矩陣,不用考慮變化問題了 特殊情況要考慮只有一行和一列的情況...

牛客演算法周周練3

只寫了乙個,打遊戲去了 就是個搜尋模板,直接寫就行 include include include include include include using namespace std define mid 1000000007 typedef long long ll int book 106 ...

牛客演算法 幸運概率

參考 題目描述 已知,1000個硬幣裡有10個金幣。隨機的取出n個硬幣,則取出硬幣裡有金幣的概率是多少?輸入描述 硬幣數n,n為小於1001的自然數 輸出描述 取出硬幣裡有金幣的概率值,小數點後保留6位小數 例如 輸入1時,為0.010000 輸入999時,為1.000000 思路 通過先求取取出硬...