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 的時間複雜度,所有元素只會進進棧一次 性質 單調棧裡面的元素具有單調性 元素加入棧前會把棧頂破壞單調性的元素刪除 使用單調棧可以找到元素向左遍歷的第乙個比他小的元素 單增棧 也可以找到元素向左遍歷第乙個比他大的元...