91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(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)載。文章觀(guā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)注

    1817

    文章

    50090

    瀏覽量

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

    關(guān)注

    66

    文章

    8553

    瀏覽量

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

    關(guān)注

    73

    文章

    5598

    瀏覽量

    124382
  • leetcode
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    IPv6 Only 進(jìn)入倒計(jì)時(shí) ,單替代雙成網(wǎng)絡(luò)演進(jìn)必然選擇

    2025年末,中國(guó)工程院院士鄔賀銓在“2026ICT行業(yè)趨勢(shì)年會(huì)”上強(qiáng)調(diào)“雙是過(guò)去的妥協(xié),IPv6Only才是未來(lái)的必然”,這一判斷精準(zhǔn)點(diǎn)出了全球網(wǎng)絡(luò)協(xié)議演進(jìn)的核心方向。隨著技術(shù)兼容方案成熟、政策
    的頭像 發(fā)表于 12-23 09:59 ?1532次閱讀
    IPv6 Only 進(jìn)入倒計(jì)時(shí) ,單<b class='flag-5'>棧</b>替代雙<b class='flag-5'>棧</b>成網(wǎng)絡(luò)演進(jìn)必然選擇

    開(kāi)關(guān)電源 變壓器初級(jí)電流異常

    直流開(kāi)關(guān)電源,單相全橋逆變,硬開(kāi)關(guān)電路 變壓器初級(jí)電流異常突變 一開(kāi)始使用EE磁芯沒(méi)有問(wèn)題,后來(lái)?yè)Q成環(huán)形磁芯就發(fā)現(xiàn)初級(jí)電流異常了,且跟功率大小沒(méi)有關(guān)系,功率小的時(shí)候也有,且有的功率段又沒(méi)有。
    發(fā)表于 12-20 16:57

    Stack到底用來(lái)干嘛的呢?

    Stack_Size就是大小,0x00000400就是代表有1K(0x400/1024)的大小。 那這個(gè)到底用來(lái)干嘛的呢? 比如說(shuō)我們函數(shù)的形參、以及函數(shù)里定義的局部變量就是存儲(chǔ)在里,所以
    發(fā)表于 12-01 08:04

    堆和的區(qū)別

    一個(gè)由C/C 編譯的程序占用的內(nèi)存分為以下幾個(gè)部分: 區(qū)(stack):由編譯器自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類(lèi)似于數(shù)據(jù)結(jié)構(gòu)中的。 堆區(qū)(heap):一般由
    的頭像 發(fā)表于 11-27 18:13 ?1076次閱讀

    在Keil5中查看大小

    1、修改啟動(dòng)文件: 方法說(shuō)明:大小通常在啟動(dòng)文件中定義。可以通過(guò)直接修改這個(gè)文件中的Stack_Size變量來(lái)調(diào)整大小。 操作步驟:找到對(duì)應(yīng)的啟動(dòng)文件,定位到Stack_Size的定義處,修改
    發(fā)表于 11-14 06:32

    基于E203 RISC-V的音頻信號(hào)處理系統(tǒng) -ANC算法簡(jiǎn)介

    基于FxLMS算法的寬帶前饋型主動(dòng)噪聲控制系統(tǒng)框圖 其中控制器部分,即是我們算法的核心運(yùn)算部分,即LMS算法。通過(guò)該算法對(duì)初級(jí)聲源的處理
    發(fā)表于 10-28 07:50

    TPS62A02/TPS62A02A評(píng)估模塊(EVM)技術(shù)解析與應(yīng)用指南

    Texas Instruments TPS62A02EVM/TPS62A02AEVM評(píng)估模塊配置用于評(píng)估TPS62A02和TPS62A02A的運(yùn)行。TPS62A
    的頭像 發(fā)表于 09-12 15:23 ?991次閱讀
    TPS62A<b class='flag-5'>02</b>/TPS62A<b class='flag-5'>02</b>A評(píng)估模塊(EVM)技術(shù)解析與應(yīng)用指南

    黑芝麻智能端到端全式輔助駕駛系統(tǒng)的應(yīng)用場(chǎng)景

    黑芝麻智能推出的全新一代端到端全輔助駕駛系統(tǒng),以武當(dāng)C1200系列高算力芯片為基石,深度融合自研感知算法,實(shí)現(xiàn)從場(chǎng)景感知到車(chē)輛控制的完全閉環(huán)優(yōu)化——讓輔助駕駛系統(tǒng)學(xué)會(huì)理解路況的呼吸與脈搏,真正走進(jìn)“人車(chē)共駕”的黃金時(shí)代。
    的頭像 發(fā)表于 09-09 17:19 ?2574次閱讀

    AI的核心操控:從算法到硬件的協(xié)同進(jìn)化

    ? ? ? ?人工智能(AI)的核心操控涉及算法、算力和數(shù)據(jù)三大要素的深度融合,其技術(shù)本質(zhì)是通過(guò)硬件與軟件的協(xié)同優(yōu)化實(shí)現(xiàn)對(duì)復(fù)雜任務(wù)的自主決策與執(zhí)行。這一過(guò)程依賴(lài)多層技術(shù)的精密配合,從底層的芯片架構(gòu)
    的頭像 發(fā)表于 09-08 17:51 ?982次閱讀

    自動(dòng)駕駛中常提的“全”是個(gè)啥?有必要“全”嗎?

    和應(yīng)用,涵蓋從底層硬件、感知算法、高精地圖、定位與融合,到?jīng)Q策規(guī)劃、控制執(zhí)行、軟件平臺(tái),乃至整車(chē)集成與云端服務(wù)的完整鏈條。對(duì)于希望在激烈的市場(chǎng)競(jìng)爭(zhēng)中占據(jù)一席之地的車(chē)企和科技公司來(lái)說(shuō),全似乎代表了掌握核心競(jìng)爭(zhēng)
    的頭像 發(fā)表于 08-27 09:43 ?1126次閱讀
    自動(dòng)駕駛中常提的“全<b class='flag-5'>棧</b>”是個(gè)啥?有必要“全<b class='flag-5'>棧</b>”嗎?

    ?REF02 精密電壓參考芯片技術(shù)文檔總結(jié)

    的影響最小。REF02 采用單電源供電,輸入范圍為 8V 至 40V,電流消耗極低,僅為 1mA,并且由于改進(jìn)的設(shè)計(jì)而具有出色的溫度穩(wěn)定性。出色的線(xiàn)路和負(fù)載調(diào)節(jié)、低噪聲、低功耗和低成本使 REF02
    的頭像 發(fā)表于 08-15 11:15 ?1183次閱讀
    ?REF<b class='flag-5'>02</b> 精密電壓參考芯片技術(shù)文檔總結(jié)

    PPEC電源DIY套件:圖形化算法編程,解鎖電力電子底層算法實(shí)踐

    電源。這種方式不僅降低了開(kāi)發(fā)門(mén)檻,還保留了對(duì)底層算法的控制能力,具有很強(qiáng)的實(shí)踐性和教育意義。 升級(jí)版開(kāi)關(guān)電源DIY 套件核心組件含: PPEC 最小系統(tǒng)板(PPEC32F334RBT7 芯片
    發(fā)表于 08-14 11:30

    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 ?1420次閱讀
    RISC-V架構(gòu)下AI融合算力及其軟件<b class='flag-5'>棧</b>實(shí)踐

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

    基于A(yíng)PM32F407如何制作I2C EEPROM(AT24C02型號(hào))的Keil下載算法,這樣在我們下載代碼時(shí)可以一鍵把數(shù)據(jù)燒錄到EEPROM中。
    的頭像 發(fā)表于 04-11 11:06 ?2076次閱讀
    基于A(yíng)PM32F407如何制作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 ?1282次閱讀
    深入淺出解析低功耗藍(lán)牙協(xié)議<b class='flag-5'>棧</b>