棧的思維題

2021-10-14 14:47:16 字數 788 閱讀 7441

click go!!!

輸入n,代表將會把1~n 隨意的壓入棧中,add代表入棧乙個數,remove代表出棧乙個數,嚴格按照1,2,3,4。。。。的順序出棧。如果不能按順序則需要一次排序,問需要排序多少次?

思路: 當我們經過一次排序後,其實後面的數都為有序的,並不影響後面的。也就是說後面是否需要排序不受已經排序過的數影響。

要點: 每次排序後直接清空棧

1.判斷是否棧空,若為空代表:在已將排好序的基礎上出棧——直接下一次輸入

2. 若不空,且棧頂等於當前需要的出棧的數,則直接下一次輸入

3. 若不空,且棧頂不等於當前需要的出棧的數,說明需要排序,並清棧

input:

7add 3

add 2

add 1

remove

add 4

remove

remove

remove

add 6

add 7

add 5

remove

remove

remove

output:

2

#include

using

namespace std;

char s[10]

;int

main()

else

else}}

}printf

("%d\n"

,ans)

;return0;

}

思維題合集

三個陣列,每個都是1到n的排列,定義為good pair,當且僅當,在三個陣列中,i和j的相對關係一樣。給出三個陣列,求good pair的數目。sample input sample output 42 3 1 4 2 1 4 3 2 4 3 1 3先考慮兩兩陣列,可以通過以一組為基準 rank,...

戰爭 思維題

內部題不放了 樣例輸入2 512 34 45 5105 10 15 43 20 5樣例輸出possible 4 100 impossibleps 感謝yxy給我講明白了這道題 太久沒水題解了來水乙個 早知道這篇題解這麼難寫就不寫了 include include include include de...

面試中的思維題

先記錄所有問題,最後給出所有答案 csdn右側有目錄欄,可以快捷瀏覽 桌子上有 23 枚一模一樣的硬幣,光用手摸,摸不出正反面。現在有 10 枚硬幣正面朝上,13 枚反面朝上,怎麼做可以蒙著眼把這 23 枚硬幣分成兩堆,這兩堆中正面朝上的硬幣個數一樣多?一根木棍,隨機折成三段,這三段能組成乙個三角形...