題目給定一個(gè)二叉樹(shù),找出其最大深度。二叉樹(shù)的深度為根節(jié)點(diǎn)到最遠(yuǎn)葉子節(jié)點(diǎn)的最長(zhǎng)路徑上的節(jié)點(diǎn)數(shù)。說(shuō)明:葉子節(jié)點(diǎn)是指沒(méi)有子節(jié)點(diǎn)的節(jié)點(diǎn)。示例:給定二叉樹(shù)[3,9,20,null,null,15,7],3/920/157返回它的最大深度3。思路BFS廣度優(yōu)先搜索,使用雙端隊(duì)列deque(因?yàn)樾阅鼙攘硗鈨煞NQueue好得多),在大循環(huán)內(nèi)對(duì)二叉樹(shù)的每個(gè)層做一次遍歷,range(len(queue))使只遍歷當(dāng)前的層,每次大循環(huán)ans加1。由于每個(gè)節(jié)點(diǎn)僅訪問(wèn)一次,所以時(shí)間
系統(tǒng) 2019-09-27 17:56:23 1757
Python入門(mén)之內(nèi)置模塊--sys模塊1、sys模塊sys模塊是與python解釋器交互的一個(gè)接口print(sys.path)#模塊查找的順序print(sys.argv)#命令行參數(shù)List,第一個(gè)元素是程序本身路徑只能在終端執(zhí)行print(sys.modules)#查看加載到內(nèi)存的模塊print(sys.platform)#查看當(dāng)前操作系統(tǒng)平臺(tái)mac-darwinwin-win32print(sys.version)#查看當(dāng)前解釋器的版本sys.e
系統(tǒng) 2019-09-27 17:56:06 1757
本文實(shí)例講述了Python實(shí)現(xiàn)計(jì)算對(duì)象的內(nèi)存大小。分享給大家供大家參考,具體如下:一般的sys.getsizeof()顯示不了復(fù)雜的字典。查看類(lèi)中的內(nèi)容:defdump(obj):forattrindir(obj):#dir顯示類(lèi)的所有方法print("obj.%s=%r"%(attr,getattr(obj,attr)))這里用遞歸調(diào)用所有對(duì)象的getsizeof:defget_size(obj,seen=None):#Fromhttps://goshi
系統(tǒng) 2019-09-27 17:55:55 1757
本文實(shí)例講述了python獲取Linux下文件版本信息、公司名和產(chǎn)品名的方法,分享給大家供大家參考。具體如下:區(qū)別于前文所述。本例是在linux下得到文件版本信息,主要是通過(guò)pefile模塊解析文件中的字符串得到的。代碼如下:def_get_company_and_product(self,file_path):"""Readallpropertiesofthegivenfilereturnthemasadictionary.@return:atumple
系統(tǒng) 2019-09-27 17:55:49 1757
譯序如果說(shuō)優(yōu)雅也有缺點(diǎn)的話,那就是你需要艱巨的工作才能得到它,需要良好的教育才能欣賞它。——EdsgerWybeDijkstra在Python社區(qū)文化的澆灌下,演化出了一種獨(dú)特的代碼風(fēng)格,去指導(dǎo)如何正確地使用Python,這就是常說(shuō)的pythonic。一般說(shuō)地道(idiomatic)的python代碼,就是指這份代碼很pythonic。Python的語(yǔ)法和標(biāo)準(zhǔn)庫(kù)設(shè)計(jì),處處契合著pythonic的思想。而且Python社區(qū)十分注重編碼風(fēng)格一的一致性,他們極力
系統(tǒng) 2019-09-27 17:55:36 1757
最近新需求來(lái)了,要給系統(tǒng)增加幾個(gè)資源權(quán)限。盡量減少代碼的改動(dòng)和程序的復(fù)雜程度。所以還是使用裝飾器比較科學(xué)之前用了一些登錄驗(yàn)證的現(xiàn)成裝飾器模塊。然后仿寫(xiě)一些用戶管理部分的權(quán)限裝飾器。比如下面這種defpermission_required(permission):defdecorator(f):@wraps(f)defdecorated_function(*args,**kwargs):ifnotcurrent_user.can(permission):ab
系統(tǒng) 2019-09-27 17:55:30 1757
本文實(shí)例講述了python3生成隨機(jī)數(shù)的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:該實(shí)例是根據(jù)一本書(shū)上看到過(guò)一個(gè)隨機(jī)數(shù)的小程序,經(jīng)過(guò)自己改動(dòng),變?yōu)榱艘粋€(gè)猜數(shù)字的小游戲,現(xiàn)在在python3下重寫(xiě)了一遍。這是一個(gè)控制臺(tái)下的猜數(shù)程序,winxp+python3.2+eric5和IDLE測(cè)試通過(guò),但直接用winxp的命令行運(yùn)行有問(wèn)題,原因還未知,慢慢找。ubuntu+python3.1測(cè)試通過(guò)。具體實(shí)現(xiàn)代碼如下:復(fù)制代碼代碼如下:#-*-coding:utf
系統(tǒng) 2019-09-27 17:55:11 1757
在Python中,裝飾器的本質(zhì)就是Python中的一個(gè)函數(shù),其來(lái)源自Python面向?qū)ο蟆Qb飾器是在函數(shù)調(diào)用之上的修飾。這些修飾僅是當(dāng)聲明一個(gè)函數(shù)或方法的時(shí)候,才會(huì)被應(yīng)用額外的調(diào)用。有點(diǎn)類(lèi)似Java中的AOP(面向方面編程)。同時(shí)在設(shè)計(jì)模式中,還有裝飾器模式,也即是:裝飾器模式(DecoratorPattern)允許向一個(gè)現(xiàn)有的對(duì)象添加新的功能,同時(shí)又不改變其結(jié)構(gòu)。原則是:不修改被修飾函數(shù)的源代碼,不修改被修飾函數(shù)的調(diào)用方式。裝飾器的用途:引入日志增加計(jì)時(shí)
系統(tǒng) 2019-09-27 17:55:09 1757
鎖在使用用的過(guò)程中需要導(dǎo)入threading模塊的Lock類(lèi)使用鎖:當(dāng)多個(gè)線程幾乎同時(shí)修改某一個(gè)共享數(shù)據(jù)的時(shí)候,需要進(jìn)行同步控制線程同步能夠保證多個(gè)線程安全訪問(wèn)競(jìng)爭(zhēng)資源,最簡(jiǎn)單的同步機(jī)制是引入互斥鎖。互斥鎖為資源引入一個(gè)狀態(tài):鎖定/非鎖定。鎖的語(yǔ)法創(chuàng)建鎖、鎖定鎖、釋放鎖fromthreadingimportLock#創(chuàng)建鎖mutex=Lock()#獲取鎖(上鎖)mutex.acquire()#釋放鎖(解鎖)mutex.release()在鎖定鎖的過(guò)程中ac
系統(tǒng) 2019-09-27 17:55:04 1757
1、簡(jiǎn)單解釋就是:反轉(zhuǎn)一個(gè)序列對(duì)象例子1:deffun3():x=[3,6,9]foriinreversed(x):print(i,end=',')fun3()輸出:》》》9,6,3,例子2:>>>a=range(5)>>>arange(0,5)>>>list(a)[0,1,2,3,4]>>>a1=reversed(a)>>>list(a1)[4,3,2,1,0]以上這篇淺談python內(nèi)置變量-reversed(seq)就是小編分享給大家的全部?jī)?nèi)容了,希
系統(tǒng) 2019-09-27 17:55:03 1757