原文:python實現時間o(1)的最小棧

這是畢業校招二面時遇到的手寫編程題,當時剛剛開始學習python,整個棧寫下來也是費了不少時間。畢竟語言只是工具,只要想清楚實現,使用任何語言都能快速的寫出來。 何為最小棧 棧最基礎的操作是壓棧 push 和退棧 pop ,現在需要增加一個返回棧內最小值的函數 get min ,要求get min函數的時間復雜度為o 。python的棧肯定是使用list實現,只要將list的append和pop封 ...

2018-02-11 22:07 1 1015 推薦指數:

查看詳情

騰訊微信面試題--實現時間復雜度為O(1)的 2013-02-26

去面試微信實習,遇到這道算法題,當時被卡住,故今天把它寫出來做下知識整理, 原題:實現一個,滿足min() pop() push()方法的時間復雜度都為O(1).( min()返回最小元素 ) 思路1:用一個變量minItem記錄中的最小值,在push()中 ...

Fri Mar 29 16:17:00 CST 2013 28 5757
Java實現最小的兩種方式——時間復雜度O(1)

一、前言   最近依舊在刷《劍指offer》的題目,然后今天寫到了一道蠻有意思的題目,叫做包含min函數的,解題思路有點妙,寫篇博客記錄一下。 二、描述   這道題目的描述是:定義的數據結構,請在該類型中實現一個能夠得到中所含最小元素的min函數(時間復雜度應為O ...

Sat Jan 18 09:09:00 CST 2020 0 865
O(1)時間復雜度內求最小元素

如何在O(1)時間復雜度內求最小元素呢?可以使用兩個實現該問題。 參考《Java程序員面試筆試寶典》的實現方法:使用兩個結構,一個(記為S1)用來存儲數據,另一個(記為S2)用來指示着S1的最小元素。元素入S1時,如果當前入的元素比S2中已有元素還小,則把該元素也入S2 ...

Fri Nov 10 00:49:00 CST 2017 0 1149
最小實現與優化

最小 實現一個最小,一步一步優化,從額外空間O(N) 到O(1) 。面試官看重代碼邏輯。push,pop,top,getMin都是O(1)時間。 1 用一個最小來存儲最小值 1.1要點: 2個,data用來存儲數據,minValue用來存儲最小值。 push時,data ...

Tue Jul 28 19:49:00 CST 2015 0 3185
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM