LeetCode 單調棧專題

2022-06-26 14:57:12 字數 644 閱讀 9246

單調棧,顧名思義,是維持單調遞增或遞減的棧

單調遞增棧的形式如上,適合尋找,距離他最近的,比他小的,左右兩邊元素

與單調遞增棧的用法相反

單調遞增棧的原理

class solution 

st.push(i); // 單調棧套路

}return ans;}};

單調遞減棧

class solution 

}st.push(i);

}return ans;}};

這個題使用遞減棧

class solution 

st.push(i);

}return ans;}};

class solution 

for(int i = 0; i < nums2.size(); i++)

st.pop();

}st.push(i);

}return ret;}};

專題講解 單調棧

單調棧的核心思想是維護乙個單調遞增或者單調遞減的雙向佇列。佇列中儲存陣列的索引值。我們以一道基本例題為例,了解單調棧的簡單框架。這道題目是一道可以用單調棧解決的問題。我們維護乙個序列,如果進來的數字比隊伍右側索引對應的數字大,彈出佇列右側。class solution object defdaily...

單調佇列,棧專題

a題 hdu 1506 題目大意 給你n個點,每乙個點代表當前座標下的矩形的高度,然後問你最大的矩形面積。具體思路 我們可以用乙個棧維護最大值,這個棧內的元素都是保持單調的,如果當前輸入的數比棧頂元素小的話,這個時候我們先算一波棧裡面的最大值,判斷停止的時候是當棧頂元素比當前輸入的元素小的時候停就可...

演算法 單調棧專題

單調棧是一種理解起來很容易,但是運用起來並不那麼簡單的資料結構。一句話解釋單調棧,就是乙個棧,裡面的元素的大小按照他們所在棧內的位置,滿足一定的單調性。題目是這樣的,給乙個陣列,返回乙個大小相同的陣列。返回的陣列的第i個位置的值應當是,對於原陣列中的第i個元素,至少往右走多少步,才能遇到乙個比自己大...