演算法練習 830 單調棧

2021-10-08 09:02:26 字數 525 閱讀 1629

830.單調棧

給定乙個長度為n的整數數列,輸出每個數左邊第乙個比它小的數,如果不存在則輸出-1。

輸入格式

第一行包含整數n,表示數列長度。

第二行包含n個整數,表示整數數列。

輸出格式

共一行,包含n個整數,其中第i個數表示第i個數的左邊第乙個比它小的數,如果不存在則輸出-1。

資料範圍

1≤n≤1051≤n≤105

1≤數列中元素≤1091≤數列中元素≤109

輸入樣例:

5

3 4 2 7 5

輸出樣例:
-1 3 -1 2 2
** acwing

#includeusing namespace std;

const int n = 100010;

int s[n],tt;

int n;

int main()

return 0;

}

手寫棧 STL AcWing 830 單調棧

給定乙個長度為n的整數數列,輸出每個數左邊第乙個比它小的數,如果不存在則輸出 1。輸入格式 第一行包含整數n,表示數列長度。第二行包含n個整數,表示整數數列。輸出格式 共一行,包含n個整數,其中第i個數表示第i個數的左邊第乙個比它小的數,如果不存在則輸出 1。資料範圍 1 n 105 1 數列中元素...

演算法 單調棧

單調棧 從左往右進行遍歷,如果棧頂元素大於等於當前的元素,直接出棧 while 迴圈 退出while 迴圈兩個條件,棧空,或者棧不為空,此時棧頂元素小於單前元素 if 如果棧不為空,表明棧頂元素小於當前元素,將棧頂元素儲存在當前元素對應下標的陣列中 從右邊向左進行遍歷 while 如果棧頂元素大於當...

單調棧演算法筆記

定義 單調棧就是棧內元素遞增或者單調遞減的棧,並且只能在棧頂操作。單調棧的維護是o n 的時間複雜度,所有元素只會進進棧一次 性質 單調棧裡面的元素具有單調性 元素加入棧前會把棧頂破壞單調性的元素刪除 使用單調棧可以找到元素向左遍歷的第乙個比他小的元素 單增棧 也可以找到元素向左遍歷第乙個比他大的元...