国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

劍指offer/LintCode12_最小棧

Betta / 3101人閱讀

摘要:劍指最小棧聲明文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處解題思路實現(xiàn)功能實現(xiàn)一個最小棧,要求操作均為復雜度,解題思路用棧存儲數(shù)據(jù)用最小棧存儲中最小元素,保證棧頂元素與棧頂元素同步,表示此時最小值將與此時最小值比較,將更小的一方壓棧,保證中棧頂始終

劍指offer/LintCode12_最小棧 聲明

文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處https://segmentfault.com/u/yzwall

解題思路 實現(xiàn)功能:

實現(xiàn)一個最小棧,要求push(element),pop(),min()操作均為$O(1)$復雜度,

解題思路

用棧stack存儲數(shù)據(jù);

用最小棧minStack存儲stack中最小元素,保證minStack棧頂元素與stack棧頂元素同步,minStack.peek()表示此時stack最小值

push(number)minStack將number與此時最小值minStack.peek()比較,將更小的一方壓棧,保證minStack中棧頂始終為最小值;

pop():對stack進行pop()時,同時進行minStack.pop(),保證minStackstack同步;

注意點

實現(xiàn)最大棧時,

push(number)操作只需push(Math.max(number, minStack.peek()),保證maxStack棧頂元素始終為最大值

pop操作時,maxStackstack同時pop,保證同步;

題目鏈接

lintcode 12: http://www.lintcode.com/en/problem/min-stack/

Java代碼
/**
 * 實現(xiàn)一個最小棧,要求push,pop,min操作均為O(1)復雜度
 * http://www.lintcode.com/en/problem/min-stack/
 * @author yzwall
 */
import java.util.ArrayDeque;

class MinStack {
    private ArrayDeque stack;
    private ArrayDeque minStack;
    
    MinStack() {
        this.stack = new ArrayDeque<>();
        this.minStack = new ArrayDeque<>();
    }
    
    public void push(int number) {
        stack.push(number);
        if (minStack.isEmpty()) {
            minStack.push(number);
        } else {
            // 實現(xiàn)最大棧時,只需push(Math.max(number, minStack.peek())
            minStack.push(Math.min(number, minStack.peek()));
        }
    }
    
    public int pop() {
        minStack.pop();
        return stack.pop();
    }
    
    public int min() {
        return minStack.peek();
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67067.html

相關(guān)文章

  • 劍指offer/LintCode40_用兩個模擬隊列

    摘要:劍指用兩個棧模擬隊列聲明文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處解題思路實現(xiàn)功能用兩個棧模擬實現(xiàn)一個隊列的,和操作解題思路假設有兩個棧隊列實現(xiàn)始終用入棧實現(xiàn)隊列和實現(xiàn)由于依次出棧并壓入中,恰好保證中順序與模擬隊列順序一致,始終保證棧頂元素為模擬 劍指offer/LintCode40_用兩個棧模擬隊列 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處https://segmentfault.com...

    bawn 評論0 收藏0
  • 劍指offer/LintCode494_用兩個隊列實現(xiàn)一個

    摘要:劍指用兩個隊列實現(xiàn)一個棧聲明文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處解題思路實現(xiàn)功能用兩個隊列實現(xiàn)一個棧,實現(xiàn),,和方法解題思路假設有隊列和實現(xiàn)棧的操作實現(xiàn)棧操作始終用來入隊實現(xiàn)實現(xiàn)棧的方法模擬棧的過程中,保證兩個隊列中始終有一個隊列為空,另一 劍指offer/LintCode494_用兩個隊列實現(xiàn)一個棧 聲明 文章均為本人技術(shù)筆記,轉(zhuǎn)載請注明出處https://segmentfault....

    rose 評論0 收藏0
  • 劍指offer】13.包含min函數(shù)的

    摘要:題目定義棧的數(shù)據(jù)結(jié)構(gòu),請在該類型中實現(xiàn)一個能夠得到棧中所含最小元素的函數(shù)時間復雜度應為。這樣最小值棧的棧頂永遠是當前棧的最小值。 題目 定義棧的數(shù)據(jù)結(jié)構(gòu),請在該類型中實現(xiàn)一個能夠得到棧中所含最小元素的min函數(shù)(時間復雜度應為O(1))。 思路 1.定義兩個棧,一個棧用于存儲數(shù)據(jù),另一個棧用于存儲每次數(shù)據(jù)進棧時棧的最小值. 2.每次數(shù)據(jù)進棧時,將此數(shù)據(jù)和最小值棧的棧頂元素比較,將二者比...

    yanest 評論0 收藏0
  • 劍指offer】讓抽象問題具體化

    摘要:假設壓入棧的所有數(shù)字均不相等。注意這兩個序列的長度是相等的思路借助一個輔助棧來存儲數(shù)據(jù)。當所有數(shù)據(jù)入棧完成,如果出棧順序正確,那么輔助棧應該為空。若存在,左右子樹,遞歸檢測左右子樹是否復合規(guī)范。 1.包含min函數(shù)的棧 定義棧的數(shù)據(jù)結(jié)構(gòu),請在該類型中實現(xiàn)一個能夠得到棧中所含最小元素的min函數(shù)(時間復雜度應為O(1))。 思路 1.定義兩個棧,一個棧用于存儲數(shù)據(jù),另一個棧用于存儲每次數(shù)...

    Keagan 評論0 收藏0
  • 從簡歷被拒到收割今日頭條 offer,我用一年時間破繭成蝶!

    摘要:正如我標題所說,簡歷被拒。看了我簡歷之后說頭條競爭激烈,我背景不夠,點到為止。。三準備面試其實從三月份投遞簡歷開始準備面試到四月份收,也不過個月的時間,但這都是建立在我過去一年的積累啊。 本文是 無精瘋 同學投稿的面試經(jīng)歷 關(guān)注微信公眾號:進擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無精瘋 同學的分享 目錄: 印象中的頭條 面試背景 準備面試 ...

    tracymac7 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<