AcWing 單調棧 棧

2021-09-26 08:54:04 字數 836 閱讀 7480

時/空限制:1s / 64mb

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

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

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

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

1≤n≤10^5

1≤數列中元素≤10^9

5

3 4 2 7 5

-1 3 -1 2 2

題意:找出每個數左邊第乙個小於它的數。

思路:構造單調棧,每次往前找,遇到大於等於它的就出棧,直到找到小於它的數,或者棧為空(就是沒有找到),最後並把它進棧,把它這樣就構造出了乙個單調棧。

accepted code:

/* 

* @author: lzyws739307453

* @language: c++

*/#include using namespace std;

const int maxn = 100005;

int stack[maxn], top = 0;

void push(int x)

void pop()

bool empty()

int query()

int main()

printf("\n");

return 0;

}

單調棧 Acwing 152 城市遊戲

152 城市遊戲 有一天,小貓rainbow和freda來到了湘西張家界的天門山玉蟾宮,玉蟾宮宮主藍兔盛情地款待了它們,並賜予它們一片土地。這片土地被分成n m個格仔,每個格仔裡寫著 r 或者 f r代表這塊土地被賜予了rainbow,f代表這塊土地被賜予了freda。現在freda要在這裡賣萌。它...

單調棧 模板 單調棧模板

biu 單調棧主要用於求取左邊第乙個比它大,或者比它小的數。就比如站隊隨便排成一列,可以求到每個人後面第乙個比他高的人。同理可以推廣至右邊,比它矮均可。這就是單調遞增棧 遞減棧,從前至 棧,從後向前入棧的區別了。單調棧比較抽象,非常具有智慧型的想法,可應用的場景相當少,根據幾個經典題目體會它的用法會...

棧和佇列 單調佇列 單調棧

講解部落格鏈結 一 單調棧 1 什麼是單調棧?單調棧是指乙個棧內部元素具有嚴格單調性 單調遞增,單調遞減 的一種資料結構。2 單調棧的兩個性質 滿足從棧頂到棧底具有嚴格的單調性 滿足後進先出的特徵,越靠近棧底的元素越早的進棧。3 元素進棧的過程 對於當前進棧元素x 如果x 棧頂元素,x 進棧。否則 ...