【leetcode】Pascal's Triangle II (python)__python

來源:互聯網
上載者:User

其實每一行的結果是二項式展開的係數,但是考慮到當給定的參數過大的時候,在求組合的過程中會出現溢出(中間過程要用到乘法),但是這樣的演算法的時間複雜度是O(N),所以在參數不太大的時候,還是不錯的。

這裡用迭代的方法來求,當然複雜度就高了,是O(N^2),這裡主要說下迭代時候的技巧,即在一個列表(數組)裡進行迭代,實現如此的操作,要求在求下一行的時候,要從後往前進行,若是從前向後,就把後面要用的變數給改掉了,產生“髒”資料。從後向前不會(為何。),因為下一行比上一行多一個。(自己寫寫例子看看)

class Solution:    # @return a list of integers    def getRow(self, rowIndex):        if rowIndex < 0: return []        re = [0] * (rowIndex + 1)        for i in range(rowIndex + 1):            re[i] = 1            for j in xrange(i - 1, 0, -1):                re[j] += re[j - 1]        return re


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.