資料結構實驗之棧與佇列六 下一較大值(二)

2021-09-29 07:41:35 字數 1094 閱讀 2184

資料結構實驗之棧與佇列六:下一較大值(二)

time limit: 150 ms memory limit: 8000 kib

submit statistic

problem description

對於包含n(1<=n<=100000)個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第乙個大於它的值,如果找到,輸出所找到的值,否則,輸出-1。input 輸入有多組,第一行輸入t(1<=t<=10),表示輸入的組數;以後是 t 組輸入:每組先輸入n,表示本組序列的元素個數,之後依次輸入本組的n個元素。output 輸出有多組,每組之間輸出乙個空行(最後一組之後沒有);每組輸出按照本序列元素的順序,依次逐行輸出當前元素及其查詢結果,兩者之間以–>間隔。sample input2

4 12 20 15 18

5 20 15 25 30 6

sample output12–>20

20–>-1

15–>18

18–>-1

20–>25

15–>25

25–>30

30–>-1

6–>-1

hint 本題資料量大、限時要求高,須借助棧來完成。

#include

#include

#define ma 100005

int a[ma]

,b[ma]

,c[ma]

;//a,b,c分別為輸入陣列,輸出陣列,棧(用來儲存比前面值大的數)//

intmain()

else

//如果不行,就去棧裡找//

top--;}

//這裡對top說明:如輸入1,20,1,15,四個數,找到20的時候棧裡的數沒有比它大的數,因此top會變為0,以前的數被覆蓋,但是這裡20比以上數都大,所以再往後找數的時候下一較大值肯定要先找到20//

if(f==

0)b[i]=-

1;}}

for(i=

0;i(t)printf

("\n");

}return0;

}

第一次寫哦。

資料結構實驗之棧與佇列六 下一較大值(二)

time limit 150ms memory limit 8000kb submit statistic problem description 對於包含n 1 n 100000 個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第乙個大於它的值,如果找到,輸出所找到的值,否則,輸出 1。...

資料結構實驗之棧與佇列六 下一較大值(二)

資料結構實驗之棧與佇列六 下一較大值 二 time limit 150 ms memory limit 8000 kib problem description 對於包含n 1 n 100000 個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第乙個大於它的值,如果找到,輸出所找到的值,否...

資料結構實驗之棧與佇列六 下一較大值(二)

problem description 對於包含n 1 n 100000 個整數的序列,對於序列中的每一元素,在序列中查詢其位置之後第乙個大於它的值,如果找到,輸出所找到的值,否則,輸出 1。input 輸入有多組,第一行輸入t 1 t 10 表示輸入的組數 以後是 t 組輸入 每組先輸入n,表示本...