遞迴並非萬能

2021-09-20 04:45:54 字數 954 閱讀 7944

遞迴的確簡潔, 但效能很差, 因為它進行了大量重複的計算,

如果用遞迴運算做乘法,5!*4! = 5*4*3*2*1 * 4*3*2*1顯然4!完全可以算一遍, 而遞迴結結實實的算了兩遍

如果我們把每一步運算的結果都用字典存起來, 那就能減少大量的運算

給出1, 2, 3, 4, 5, ..., n 一共n個數, 求用它們能夠構成多少種形狀不同的二叉搜尋樹

二叉搜尋樹 "左節點的值大於右節點"

二叉搜尋樹

class solution:

def __init__(self):

self.ubs_dic =

def numtrees(self, n):

# 要求n的就必須把前面所有的項都求出來

for k in range(n+1):

tmp = 0

for now_k in range(k):

pre_left = self.ubs_dic[now_k]

pre_right = self.ubs_dic[k-now_k-1]

if pre_left == 0:

pre_left = 1

if pre_right == 0:

pre_right = 1

tmp = tmp + (pre_left * pre_right)

self.ubs_dic[k] = tmp

return self.ubs_dic[n]

def main():

so = solution()

result = so.numtrees(10)

print(result)

if __name__ == '__main__':

main()

Code coverage並非萬能的

前面單元測試中提到 覆蓋率,簡單來說 被執行過,就是 覆蓋過 如果一段程式執行了一組測試用例之後,100 的 被執行了,那麼是否就說明再也不用寫新的測試用例了呢?答案是否定的。1 不同 是否執行,有很多組合,一行 被執行過,沒有問題,並不表明這一行程式在所有可能條件的組合下都能正確無誤地執行。2 覆...

並非萬能的XML

並非萬能的xml 左直拳 xml是個炙手可熱的東西,出來很多年了,好象還聽說將取代html 不過直到今天html1.1還健在,其實我認為兩者很大程度上並無可比性 有一次我去面試,人家問我熟不熟悉xml,答曰不會,結果被 人來落閘放狗 地趕了出來。不過看起來,xml比較適合少量的資料,記錄一多,弊端就...

萬能密碼 php,PHP萬能密碼

說實話如果乙個 的前台都是注入漏洞,那麼憑經驗,萬能密碼進後台的機率基本上是百分之百。可是有的人說對php的站如果是gpc魔術轉換開啟,就會對特殊符號轉義,就徹底杜絕了php注入。其實說這話的人沒有好好想過,更沒有嘗試過用萬能密碼進php的後台。其實gpc魔術轉換是否開啟對用萬能密碼進後台一點影響也...