ARTS打卡23 Python自帶迷你資料庫

2021-10-08 19:12:25 字數 2100 閱讀 9360

algorithm做演算法題,review點評英文文章,tip總結技術技巧,share做技術分享。每週打卡一次,這就是arts打卡。

leetcode 劍指 offer 59 - ii. 佇列的最大值

題目描述:

請定義乙個佇列並實現函式max_value得到佇列裡的最大值,要求函式max_valuepush_backpop_front均攤時間複雜度都是o(1)。若隊列為空,pop_frontmax_value需要返回 -1

示例 1:

輸入: 

["maxqueue","push_back","push_back","max_value","pop_front","max_value"]

[,[1],[2],,,]

輸出: [null,null,null,2,1,2]

示例 2:

輸入: 

["maxqueue","pop_front","max_value"]

[,,]

輸出: [null,-1,-1]

限制:

解題思路:

佇列和棧一樣是操作受限的線性表,不同的是,佇列是先進先出。題目中要求是找出最大值,在入隊時比較新加入元素是否大於最大值,如果更大,則更新最大值。在出隊時判斷是否為最大值出隊,如果是則重新計算最大值。

解題**:

class

maxqueue

:def

__init__

(self)

: self.queue =

self.max_num =-1

defmax_value

(self)

->

int:

iflen

(self.queue)==0

:return-1

return self.max_num

defpush_back

(self, value:

int)

->

none

:if value > self.max_num:

self.max_num = value

defpop_front

(self)

->

int:

iflen

(self.queue)==0

:return-1

iflen

(self.queue)==1

: self.max_num =-1

if self.queue[0]

== self.max_num and

len(self.queue)

>1:

self.max_num =

max(self.queue[1:

])pop_num = self.queue[0]

self.queue = self.queue[1:

]return pop_num

# your maxqueue object will be instantiated and called as such:

# obj = maxqueue()

# param_1 = obj.max_value()

# obj.push_back(value)

# param_3 = obj.pop_front()

magi是乙個反饋機器學習結果的搜尋引擎。magi會向其他搜尋引擎一樣爬取網頁資訊,不一樣的地方是,magi將蒐集到的資料進行結構化,提取其中資訊,形成供人參考的知識。magi比較適合在了解乙個新概念時使用。

在windows中執行curl命令,有時會報錯,不能直接搬移linux下的命令。建議使用invoke-webrequest命令替代,參考這裡。

(23)python集合的使用

集合是無序可變,元素不能重複。實際上,集合底層是字典實現,集合的所有元素都是字典中的 鍵物件 因此是不能重複的且唯一的。1.使用 建立集合物件,並使用 add 方法新增元素 a a a.add 9 a 2.使用 set 將列表 元組等可迭代物件轉成集合。如果原來資料存在重複資料,則只保留乙個。a a...

2 3 Python資料型別

數值分成三種 整數 浮點數 複數 1 整數 在python中整數都是int型別,無大小限制,可任意大小 如果數字長度過大可以使用下劃線作為分隔符 如 a 123 456 345 a的值為123456345 十進位制的數字不能以0開頭 其他進製的整數,只要是數字列印時一定是以十進位制的形式顯示 二進位...

23 Python常用模組(一)

1.簡單了解模組 寫的每乙個py檔案都是乙個模組.還有一些我們一直在使用的模組 buildins 內建模組.print,input random 主要是和隨機相關的內容 random 隨機小數 uninform a,b 隨機小數 randint a,b 隨機整數 choice 隨機選擇乙個 samp...