題目描述這道題目我的做法很簡單,定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式(時間複雜度應為o(1))。
注意:保證測試中不會當棧為空的時候,對棧呼叫pop()或者min()或者top()方法。
push
、pop
都是呼叫的原生方法,主要需要自己寫的函式是min
,我的寫法也很簡單,就是遍歷一次陣列,記錄下遍歷過程中比當前紀錄的最小值還要小的數,最後返回即可。
let arr = ;
function push(node)
function pop()
function top()
function min()
else if(item<_min)
}return _min;
}
《劍指offer》20 包含min函式的棧
定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式。c 實現 思路 應用乙個輔助棧,壓的時候,如果a棧的壓入比b棧壓入大,b棧不壓,小於等於,ab棧同時壓入,出棧,如果,ab棧頂元素不等,a出,b不出。class solution void pop int top int m...
劍指Offer 20 包含min函式的棧
定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的min函式 時間複雜度應為o 1 注意 保證測試中不會當棧為空的時候,對棧呼叫pop 或者min 或者top 方法。第一反應 每次壓入乙個新元素進棧時,將棧裡的所有元素排序,讓最小的元素位於棧頂,這樣就能在o 1 時間得到最小元素。但是...
劍指offer 20 包含min函式的棧
主流想法 在看到這道題目的時候第一反應是要用乙個最小值來保留當前棧中最小值,但是也能夠很快地意識到比較麻煩的地方在於pop的時候怎麼更新min值,看了別人的題解之後都是使用了另外乙個棧來保持在入棧過程中曾經做過最小值的值,pop的時候判斷兩個棧頂元素是否一致,一致的話都要pop,在這種情況下取最小值...