題意:
給定n長的數組(下標從1-n)(n個人的身高,身高各不相同
問:對於第i個人,他能看到的左邊最矮的人下標。(如果這個最矮的人被擋住了,則這個值為0)
還有右邊最高的人下標,同理若被擋住了則這個值為0
輸出n行,每個人左右2邊的下標。
單調隊列,對於 front - rear 的隊列(注意出隊都是在rear,入隊也是在rear)
當加入元素x,若這隊列是單調遞增的,顯然q.front() <= x , 反之若>x ,則把隊首元素彈掉,這樣就能保持單調性。
若彈掉了隊首元素,在此題中就相當於最矮的人被擋住了,因為{q.end() < q.front() }> x。
#include
#include
#include
#include
#include
#include
#include