成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

劍指offer/LintCode40_用兩個(gè)棧模擬隊(duì)列

bawn / 3173人閱讀

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

劍指offer/LintCode40_用兩個(gè)棧模擬隊(duì)列 聲明

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

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

用兩個(gè)棧模擬實(shí)現(xiàn)一個(gè)隊(duì)列的push(element),pop()top()操作;

解題思路

假設(shè)有兩個(gè)棧stack1, stack2

隊(duì)列push(element)實(shí)現(xiàn):始終用stack1入棧實(shí)現(xiàn)

隊(duì)列pop()top()實(shí)現(xiàn):由于stack1依次出棧并壓入stack2中,恰好保證stack2中順序與模擬隊(duì)列順序一致,始終保證stack2棧頂元素為模擬隊(duì)列隊(duì)首

當(dāng)stack2為空時(shí),stack1中全部元素依次出棧并入棧stack2,最后直接彈出棧頂或者只返回棧頂數(shù)據(jù);

當(dāng)stack2不空時(shí),直接彈出棧頂或者只返回棧頂數(shù)據(jù);

注意點(diǎn)

對(duì)空棧進(jìn)行pop()top()操作時(shí)考慮異常情況;

實(shí)現(xiàn)棧棄用java.util.stack,選用java.util.ArrayDeque實(shí)現(xiàn);

題目鏈接

lintcode 40: http://www.lintcode.com/en/problem/implement-queue-by-two-stacks/

劍指offer 面試題7

Java代碼
import java.util.ArrayDeque;

/**
 * 用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列
 * http://www.lintcode.com/en/problem/implement-queue-by-two-stacks/
 * @author yzwall
 */
class MyQueue {
    private ArrayDeque stack1;
    private ArrayDeque stack2;
    
    MyQueue() {
        this.stack1 = new ArrayDeque<>();
        this.stack2 = new ArrayDeque<>();
    }
    
    public void push(int element) {
        stack1.push(element);
    }
    
    public int pop() {
        if (stack2.isEmpty()) {
            while (!stack1.isEmpty()) {
                stack2.push(stack1.pop());
            }
        }
        return stack2.pop();
    }
    
    public int top() {
        if (stack2.isEmpty()) {
            while (!stack1.isEmpty()) {
                stack2.push(stack1.pop());
            }            
        }
        return stack2.peek();
    }
}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/67066.html

相關(guān)文章

  • 劍指offer/LintCode494_兩個(gè)隊(duì)列實(shí)現(xiàn)一個(gè)

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

    rose 評(píng)論0 收藏0
  • 劍指offer/LintCode12_最小

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

    Betta 評(píng)論0 收藏0
  • 【轉(zhuǎn)】《劍指Offer》JavaScript實(shí)戰(zhàn)——兩個(gè)實(shí)現(xiàn)隊(duì)列

    摘要:題目描述用兩個(gè)棧來實(shí)現(xiàn)一個(gè)隊(duì)列,完成隊(duì)列的和操作。隊(duì)列中的元素為類型。下面是實(shí)現(xiàn)代碼。 題目描述 ????用兩個(gè)棧來實(shí)現(xiàn)一個(gè)隊(duì)列,完成隊(duì)列的Push和Pop操作。 隊(duì)列中的元素為int類型。 解題方法 let stack1=[],//兩個(gè)數(shù)組模擬棧的行為 stack2=[]; function push(node) { // write code here //...

    senntyou 評(píng)論0 收藏0
  • 劍指offer】6.兩個(gè)實(shí)現(xiàn)隊(duì)列

    摘要:題目用兩個(gè)棧來實(shí)現(xiàn)一個(gè)隊(duì)列,完成隊(duì)列的和操作。隊(duì)列中的元素為類型?;舅悸窏S糜谌腙?duì)列存儲(chǔ)棧出隊(duì)列時(shí)將棧的數(shù)據(jù)依次出棧,并入棧到棧中棧出棧即棧的底部數(shù)據(jù)即隊(duì)列要出的數(shù)據(jù)。注意棧為空才能補(bǔ)充棧的數(shù)據(jù),否則會(huì)打亂當(dāng)前的順序。 題目 用兩個(gè)棧來實(shí)現(xiàn)一個(gè)隊(duì)列,完成隊(duì)列的Push和Pop操作。 隊(duì)列中的元素為int類型。 基本思路 棧1: 用于入隊(duì)列存儲(chǔ) 棧2: 出隊(duì)列時(shí)將棧1的數(shù)據(jù)依次出棧,并...

    fredshare 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

bawn

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<