題目給定一個二叉樹,找出其最大深度。二叉樹的深度為根節(jié)點到最遠葉子節(jié)點的最長路徑上的節(jié)點數。說明:葉子節(jié)點是指沒有子節(jié)點的節(jié)點。示例:給定二叉樹[3,9,20,null,null,15,7],3/920/157返回它的最大深度3。思路BFS廣度優(yōu)先搜索,使用雙端隊列deque(因為性能比另外兩種Queue好得多),在大循環(huán)內對二叉樹的每個層做一次遍歷,range(len(queue))使只遍歷當前的層,每次大循環(huán)ans加1。由于每個節(jié)點僅訪問一次,所以時間
系統 2019-09-27 17:56:23 1758
本文實例講述了Python實現計算對象的內存大小。分享給大家供大家參考,具體如下:一般的sys.getsizeof()顯示不了復雜的字典。查看類中的內容:defdump(obj):forattrindir(obj):#dir顯示類的所有方法print("obj.%s=%r"%(attr,getattr(obj,attr)))這里用遞歸調用所有對象的getsizeof:defget_size(obj,seen=None):#Fromhttps://goshi
系統 2019-09-27 17:55:55 1758
在Python中,裝飾器的本質就是Python中的一個函數,其來源自Python面向對象。裝飾器是在函數調用之上的修飾。這些修飾僅是當聲明一個函數或方法的時候,才會被應用額外的調用。有點類似Java中的AOP(面向方面編程)。同時在設計模式中,還有裝飾器模式,也即是:裝飾器模式(DecoratorPattern)允許向一個現有的對象添加新的功能,同時又不改變其結構。原則是:不修改被修飾函數的源代碼,不修改被修飾函數的調用方式。裝飾器的用途:引入日志增加計時
系統 2019-09-27 17:55:09 1758
本文原創(chuàng)并首發(fā)于公眾號【Python貓】,未經授權,請勿轉載。原文地址:https://mp.weixin.qq.com/s/-f...Python是一門強大的動態(tài)語言,那動態(tài)體現在哪里,強大又體現在哪里呢?除了好的方面,Python的動態(tài)性是否還藏著一些使用陷阱呢,有沒有辦法識別與避免呢?沿著它的動態(tài)特性話題,貓哥有幾篇文章依次探及了:動態(tài)修改變量、動態(tài)定義函數、動態(tài)執(zhí)行代碼等內容,然而,當混合了變量賦值、動態(tài)賦值、命名空間、作用域、函數的編譯原理等等內
系統 2019-09-27 17:55:00 1758
Python函數編程——迭代器我們已經知道,可以直接作用于for循環(huán)的數據類型有以下幾種:1、類是集合數據類型,如list、tuple、dict、set、str等;2、一類是generator,包括生成器和帶yield的generatorfunction。這些可以直接作用于for循環(huán)的對象統稱為可迭代對象:Iterable,可迭代的意思就是可遍歷、可循環(huán)。可以使用isinstance()判斷一個對象是否是Iterable對象:>>>fromcollecti
系統 2019-09-27 17:54:50 1758
2019-09-16-23:09:06自學Python的第六天,也是寫博客的第六天今天學的內容是有關dict字典的用法看視頻加上練習,目前還沒遇到有難點,但是感覺很不好的樣子沒有難點以后突然出現一個有關字典的程序感覺要炸,還是得繼續(xù)掌握看最后的代碼吧,有更好的請告訴我======我======是=====一======條======快======樂======的======分======割======線======一.重要知識點1.dict用大括號{}括起
系統 2019-09-27 17:54:44 1758
主要邏輯是判斷文件的最后修改時間與創(chuàng)建時間是否在秒級別上一致,此代碼適用于Python2.importtimeimportos#ReadfimenameFileName='D:/scapegoat/xx.csv'#printfilecreationtimeprinttime.strftime('%Y-%m-%d%H:%M:%S',time.localtime(os.stat(FileName).st_ctime))#printfilemodifiedtim
系統 2019-09-27 17:54:41 1758
python中random的常用方法總結一、random常用模塊1.random.random()隨機生成一個小數print(random.random())#輸出0.60605621179967842.random.randint(m,n)隨機生成一個m到n的整數(包括n)print(random.randint(1,5))#輸出53.random.randrange(m,n)隨機生成m到n中的一個數,包括m但是不包括nprint(random.rand
系統 2019-09-27 17:54:35 1758
視頻地址:https://www.icourse163.org/course/NJU-10015710051.1python簡介:歷史,特點,應用1.2第一個python程序:1.輸出:print(字符串)print(變量)2.輸入:varibale=input("message":)返回的是字符串str類型如需其它類型,可使用int(),float()等函數進行類型轉換3.注釋:#4.縮進:具有相同縮進的程序語句構成同一語句塊1.3python語法基礎1
系統 2019-09-27 17:54:30 1758
一:從各種不同的格式文件中導入數據,總結目前最常用的文件格式導入數據的一些方法:#-*-coding:utf-8-*-fromnumpyimport*defloadDataSet(fileName):'''導入數據'''numFeat=len(open(fileName).readline().split('\t'))-1dataMat=[]labelMat=[]fr=open(fileName)forlineinfr.readlines():lineAr
系統 2019-09-27 17:54:24 1758