一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LeetCode初級(jí)算法-設(shè)計(jì)問(wèn)題02:最小棧

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-10 22:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

LeetCode初級(jí)算法--設(shè)計(jì)問(wèn)題02:最小棧

一、引子

這是由LeetCode官方推出的的經(jīng)典面試題目清單~
這個(gè)模塊對(duì)應(yīng)的是探索的初級(jí)算法~旨在幫助入門(mén)算法。我們第一遍刷的是leetcode推薦的題目。

二、題目

設(shè)計(jì)一個(gè)支持 push,pop,top 操作,并能在常數(shù)時(shí)間內(nèi)檢索到最小元素的棧。

  • push(x) -- 將元素 x 推入棧中。
  • pop() -- 刪除棧頂?shù)脑亍?/li>
  • top() -- 獲取棧頂元素。
  • getMin() -- 檢索棧中的最小元素。

示例:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> 返回 -3.
minStack.pop();
minStack.top();      --> 返回 0.
minStack.getMin();   --> 返回 -2.

1、思路

第一種方法:

用列表模擬棧,push、pop、top和getMin分別對(duì)應(yīng)list.append()、list.pop()、list[-1]和min()操作

第二種方法:

引入minStack列表存放最小值

2、編程實(shí)現(xiàn)

第一種方法:

python

class MinStack(object):

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.l = []
        

    def push(self, x):
        """
        :type x: int
        :rtype: None
        """
        if x is None:
            pass
        else:
            self.l.append(x)
        

    def pop(self):
        """
        :rtype: None
        """
        if self.l is None:
            return 'error'
        else:
            self.l.pop(-1)
        

    def top(self):
        """
        :rtype: int
        """
        if self.l is None:
            return 'error'
        else:
            return self.l[-1]
        

    def getMin(self):
        """
        :rtype: int
        """
        if self.l is None:
            return 'error'
        else:
            return min(self.l)


# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(x)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()

第二種方法:

class MinStack(object):
 
    def __init__(self):
        """
        initialize your data structure here.
        """
        self.stack = []       #存放所有元素
        self.minStack = []#存放每一次壓入數(shù)據(jù)時(shí),棧中的最小值(如果壓入數(shù)據(jù)的值大于棧中的最小值就不需要重復(fù)壓入最小值,小于或者等于棧中最小值則需要壓入)
 
    def push(self, x):
        """
        :type x: int
        :rtype: void
        """
        self.stack.append(x)
        if not self.minStack or self.minStack[-1]>=x:
            self.minStack.append(x)
 
    def pop(self):   #移除棧頂元素時(shí),判斷是否移除棧中最小值
        """
        :rtype: void
        """
        if self.minStack[-1]==self.stack[-1]:
            del self.minStack[-1]
        self.stack.pop()
 
    def top(self):
        """
        :rtype: int
        """
        return self.stack[-1]
        
    def getMin(self):
        """
        :rtype: int
        """
        return self.minStack[-1]

本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!

審核編輯 黃昊宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1807

    文章

    49029

    瀏覽量

    249569
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8503

    瀏覽量

    134630
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5561

    瀏覽量

    122798
  • leetcode
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    2451
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RISC-V架構(gòu)下AI融合算力及其軟件實(shí)踐

    。目前,進(jìn)迭時(shí)空已經(jīng)取得了顯著的進(jìn)展,成功推出了第一個(gè)版本的智算核(帶AI融合算力的智算CPU)以及配套的AI軟件。軟件簡(jiǎn)介AI算法部署旨在將抽象描述的多框架算法
    的頭像 發(fā)表于 06-06 17:04 ?449次閱讀
    RISC-V架構(gòu)下AI融合算力及其軟件<b class='flag-5'>棧</b>實(shí)踐

    基于APM32F407如何制作I2C EEPROM(AT24C02型號(hào))的MDK-Keil下載算法

    基于APM32F407如何制作I2C EEPROM(AT24C02型號(hào))的Keil下載算法,這樣在我們下載代碼時(shí)可以一鍵把數(shù)據(jù)燒錄到EEPROM中。
    的頭像 發(fā)表于 04-11 11:06 ?1213次閱讀
    基于APM32F407如何制作I2C EEPROM(AT24C<b class='flag-5'>02</b>型號(hào))的MDK-Keil下載<b class='flag-5'>算法</b>

    深入淺出解析低功耗藍(lán)牙協(xié)議

    Bluetooth LE協(xié)議為什么要分層?怎么理解Bluetooth LE“連接”?如果Bluetooth LE協(xié)議只有ATT層沒(méi)有GATT層會(huì)發(fā)生什么? 一、協(xié)議框架 一般而言,我們把某個(gè)
    的頭像 發(fā)表于 04-09 14:49 ?525次閱讀
    深入淺出解析低功耗藍(lán)牙協(xié)議<b class='flag-5'>棧</b>

    74VHC02;74VHCT02四路2輸入或非門(mén)規(guī)格書(shū)

    電子發(fā)燒友網(wǎng)站提供《74VHC02;74VHCT02四路2輸入或非門(mén)規(guī)格書(shū).pdf》資料免費(fèi)下載
    發(fā)表于 02-11 16:10 ?0次下載
    74VHC<b class='flag-5'>02</b>;74VHCT<b class='flag-5'>02</b>四路2輸入或非門(mén)規(guī)格書(shū)

    自動(dòng)駕駛?cè)?b class='flag-5'>棧自研可行嗎?

    隨著自動(dòng)駕駛加速落地,全自研模式在高階智能駕駛技術(shù)領(lǐng)域逐漸成為共識(shí),這種模式指的是整車(chē)廠從底層硬件、軟件算法到系統(tǒng)集成全面自主開(kāi)發(fā),而非依賴(lài)于第三方供應(yīng)商或Tier 0.5模式(車(chē)企與供應(yīng)商
    的頭像 發(fā)表于 01-27 10:24 ?3009次閱讀

    MODBUS串口通訊初級(jí)入門(mén)手冊(cè)

    初級(jí)入門(mén)手冊(cè)介紹
    發(fā)表于 01-23 16:24 ?2次下載

    曙光云開(kāi)啟全智能時(shí)代

    近日,“全可信 云中生智”曙光云戰(zhàn)略發(fā)布會(huì)召開(kāi)。曙光云從首創(chuàng)“城市云”進(jìn)化到實(shí)現(xiàn)“全智能云”,打造“云智、云安、云算、云數(shù)”四位一體能力體系,深度賦能千行百業(yè)數(shù)智化轉(zhuǎn)型升級(jí)。
    的頭像 發(fā)表于 12-19 15:11 ?651次閱讀

    常見(jiàn)的lvs負(fù)載均衡算法

    常見(jiàn)的lvs負(fù)載均衡算法包括輪詢(xún)(RR)、加權(quán)輪詢(xún)(WRR)、最小連接(LC)、加權(quán)最小連接(WLC)、基于局部性的最少鏈接(LBLC)、帶復(fù)制的LBLC(LBLCR)、目標(biāo)地址散列(DH)、源地址
    的頭像 發(fā)表于 12-12 13:50 ?588次閱讀

    λ-IO:存儲(chǔ)計(jì)算下的IO設(shè)計(jì)

    動(dòng)機(jī)和背景? ? 存儲(chǔ)計(jì)算存儲(chǔ)資源的充分利用。IO是管理存儲(chǔ)器的的基本組件,包括設(shè)備驅(qū)動(dòng)、塊接口層、文件系統(tǒng),目前一些用戶(hù)空間IO庫(kù)(如SPDK)有效降低了延遲,但是io仍然不可或缺。這是因?yàn)?
    的頭像 發(fā)表于 12-02 10:35 ?629次閱讀
    λ-IO:存儲(chǔ)計(jì)算下的IO<b class='flag-5'>棧</b>設(shè)計(jì)

    TPS62A02和TPS62A02A降壓轉(zhuǎn)換器評(píng)估模塊用戶(hù)指南

    電子發(fā)燒友網(wǎng)站提供《TPS62A02和TPS62A02A降壓轉(zhuǎn)換器評(píng)估模塊用戶(hù)指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-21 14:40 ?0次下載
    TPS62A<b class='flag-5'>02</b>和TPS62A<b class='flag-5'>02</b>A降壓轉(zhuǎn)換器評(píng)估模塊用戶(hù)指南

    RVBacktrace RISC-V極簡(jiǎn)回溯組件

    RVBacktrace組件簡(jiǎn)介一個(gè)極簡(jiǎn)的RISC-V回溯組件。功能在需要的地方調(diào)用組件提供的唯一API,開(kāi)始當(dāng)前環(huán)境的回溯支持輸出addr2line需要的命令,使用addr2line進(jìn)行?;厮葜С纸Y(jié)合反匯編,回溯信息圖表化
    的頭像 發(fā)表于 09-15 08:12 ?825次閱讀
    RVBacktrace RISC-V極簡(jiǎn)<b class='flag-5'>棧</b>回溯組件

    明緯電源DETN02-N系列非穩(wěn)壓轉(zhuǎn)換器產(chǎn)品概述

    MEAN WELL明緯電源DETN02系列具體型號(hào):DETN02L-05,DETN02L-12,DETN02L-15,DETN02M-05,
    的頭像 發(fā)表于 09-12 09:18 ?800次閱讀
    明緯電源DETN<b class='flag-5'>02</b>-N系列非穩(wěn)壓轉(zhuǎn)換器產(chǎn)品概述

    Linux網(wǎng)絡(luò)協(xié)議的實(shí)現(xiàn)

    網(wǎng)絡(luò)協(xié)議是操作系統(tǒng)核心的一個(gè)重要組成部分,負(fù)責(zé)管理網(wǎng)絡(luò)通信中的數(shù)據(jù)包處理。在 Linux 操作系統(tǒng)中,網(wǎng)絡(luò)協(xié)議(Network Stack)負(fù)責(zé)實(shí)現(xiàn) TCP/IP 協(xié)議簇,處理應(yīng)用程序發(fā)起的網(wǎng)絡(luò)
    的頭像 發(fā)表于 09-10 09:51 ?707次閱讀
    Linux網(wǎng)絡(luò)協(xié)議<b class='flag-5'>棧</b>的實(shí)現(xiàn)

    PA02 PA02A功率運(yùn)算放大器

    pa02u
    發(fā)表于 09-03 14:17 ?1次下載

    變壓器初級(jí)線圈和次級(jí)線圈的關(guān)系

    變壓器是一種利用電磁感應(yīng)原理實(shí)現(xiàn)電能在不同電壓等級(jí)之間轉(zhuǎn)換的電氣設(shè)備。它主要由初級(jí)線圈、次級(jí)線圈和鐵芯組成。其中,初級(jí)線圈和次級(jí)線圈是變壓器的核心部件,它們之間存在著密切的關(guān)系。 變壓器的基本原理
    的頭像 發(fā)表于 08-02 15:00 ?6080次閱讀