task0 最小棧 和task1(有效括號)

2021-09-25 20:54:11 字數 2111 閱讀 5571

2.letecode2 堆疊和數列(stack and queue)

2.1概念

2.1.1.棧都是一種資料項按序排列的資料結構,只能在一端(稱為棧頂(top))對資料項進行插入和刪除。棧,先進後出。

2.1.2佇列是一種特殊的線性表,只允許在表的頭部(front處)進行刪除操作,在表的尾部(rear處)進行插入操作的線性資料結構,這種結構就叫做佇列。

進行插入操作的一端稱為隊尾,進行刪除操作的一端稱為隊尾。佇列,先進先出。

題型一:(letecode155)設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧,要求時間複雜度為o(1)

push(x) – 將元素 x 推入棧中。

pop() – 刪除棧頂的元素。

top() – 獲取棧頂元素。

getmin() – 檢索棧中的最小元素。

思路:使用兩個棧,stack,min_list,先將第乙個元素入棧stack和min_stack,接著將stack入棧的元素和min_stack棧頂比較,假如入棧元素小於等於棧頂元素,則把該元素對min_stack也入棧;

否則進行下乙個元素的入棧,依次進行;出棧時,把stack出棧的元素和min_stack棧頂比較,相等就是最小值;同時stack,min_stack出棧,否則stack單獨出棧。

class

minstack

(object):

def__init__

(self)

: self.stack =

self.min_list =

defpush

(self, x):if

not self.min_list:

###最小棧如果是空的,新增

elif x <= self.min_list[-1

]:##假如x小於等於最小棧棧頂元素,將元素入最小棧

defpop

(self)

: n = self.stack.pop(

)if n == self.min_list[-1

]:###出棧的元素等於最小棧棧頂元素的時候出棧

self.min_list.pop(

)def

top(self):if

not self.stack:

##棧空返回none

return

none

return self.stack[-1

]def

getmin

(self):if

not self.min_list:

##如何棧空返回none

return

none

return self.min_list[-1

]

用時72ms,擊敗了63.2

%題型一(letecode20):判斷括號字串是否匹配(時間複雜度和空間複雜度都是o(n))

演算法思想:設定乙個棧,當讀到左括號時,左括號進棧。當讀到右括號時,則從棧中彈出乙個元素,與讀到的左括號進行匹配,若匹配成功,繼續讀入;否則

匹配失敗,返回flase。另外,在演算法的開始和結束時,棧都應該是空的.所以匹配到最後還要判斷棧是否為空,若非空,則說明匹配失敗.

技巧:使用了乙個字典map把左右括號的對應關係儲存起來,並把所有的右括號都放在鍵的位置。

如果c不是右括號(即為左括號或者其他),就把c放在stack裡面,否則的話就和棧頂的元素進行對比,看左右括號是否匹配,如果不匹配,return

false。

如果匹配,最後要判斷棧是否為空。

```python

class

solution

(object):

defisvalid

(self,s)

: a =':

' l =

[none

]##不能去掉none,去掉就出錯

for i in s:

if i in a and a[i]

== l[-1

]:l.pop(

)else

:return

len(l)

==1

用時20ms,戰勝了94.52%

資料分析高階 DCIC競賽 task0準備工作

學習資源 學習手冊 賽事詳情 共有三個部分的競賽 1 端午假期a城市交通網路擁堵識別及緩堵策略研究 需要具有從經緯度對映到路段的能力 2 a城市巡遊車與網約車與運營特徵對比分析 主要是對計程車和網約車的分布之類的對比,相對於第乙個賽題難度稍小 3 創意題 城市巡遊車與網約車運營特徵對比分析 賽題說明...

0基礎資料探勘筆記task2

第一次接觸eda 1.首先用pandas載入資料。用head shape,columns,describe 等對資料的大概情況了解一下。矩陣的行列,均值,中位數,每個變數的大概分布等 2.用info value counts 去了解那些資料是有異常的,然後替換或刪除,或者 填充 nan值情況,值的分...

Glance的Image和Task介紹

一 image image是glance的主要資源。類似於vmware的vm模板,它預先安裝了os。如果從image啟動vm,該vm被刪除後,image依然存在,但是image上不包含本次在該vm例項上的修改,因為image只是給vm啟動的模板。相對於整個openstack,nova是乙個虛擬機器的...