LeetCode120.三角形最小路徑和

class Solution:
    def minimumTotal(self, triangle):
        """
        :type triangle: List[List[int]]
        :rtype: int
        """
        s=[0]*(len(triangle)+1)
        for i in range(len(triangle)-1,-1,-1):
            for j in range(i+1):
                s[j]=min(s[j],s[j+1])+triangle[i][j]
        return s[0]

注意
1.s初始化n+1,各個(gè)邊界條件要注意
2.i從n-1開(kāi)始,由于s初始化為0,所以是s[j]初始化為a[i,j],不用寫(xiě)特殊處理代碼
3.range(start,stop[,step]),左閉右開(kāi)
4.自底向上的動(dòng)態(tài)規(guī)劃

重做,15分鐘一次通過(guò),爽?。?/p>

class Solution:
    def minimumTotal(self, triangle: List[List[int]]) -> int:
        tmp=[0]*(len(triangle[len(triangle)-1])+1)  # zh這個(gè)可以更簡(jiǎn)潔
        for i in reversed(triangle):
            for j,n in enumerate(i):
                tmp[j]=min(tmp[j],tmp[j+1])+n
        return tmp[0]

注意
1.reversed,反向迭代
2.enumerate ,既有數(shù)字也有序號(hào)

使用迭代,增加備忘錄存儲(chǔ)子問(wèn)題,每次使用這個(gè)方法的時(shí)候總會(huì)忘記存儲(chǔ)備忘錄,也忘記記錄備忘錄,等提交不通過(guò)才進(jìn)行改正

class Solution:
    def minimumTotal(self, triangle: List[List[int]]) -> int:
        mem=[[-1]*(i+1) for i in range(len(triangle))]
        return self.dp(0,0,triangle,mem)
        
    def dp(self,i:int,j:int,triangle:List[List[int]],mem:List[List[int]]) ->int:
        if i==len(triangle)-1: 
            mem[i][j]=triangle[i][j]
            return mem[i][j]
        # 忘了從備忘錄讀取了,又光顧著取,忘了存了
        if(mem[i][j]!=-1):return mem[i][j]
        mem[i][j]=min(self.dp(i+1,j,triangle,mem),self.dp(i+1,j+1,triangle,mem))+triangle[i][j]
        return mem[i][j]

注意
1.三角矩陣的生成方式
2.備忘錄的存儲(chǔ)和讀取

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,142評(píng)論 0 2
  • 字符串即String類,是Java中一個(gè)比較特俗的類,它不是Java的基本數(shù)據(jù)類型,卻可以像基本數(shù)據(jù)類型一樣使用。...
    w黃楊w閱讀 231評(píng)論 0 0
  • 今天跟小妹聊了很久,她90后,可是現(xiàn)在沒(méi)有大學(xué)文憑的她,找工作處處碰壁,連2000元的工作,都被別人挑來(lái)挑去,甚至...
    七月的飛貓閱讀 339評(píng)論 1 2
  • One Day. 大理是花都。從機(jī)場(chǎng)到火車站的機(jī)場(chǎng)大巴上。隨處都可以瞥見(jiàn)鮮艷艷的花。 大理也是旅游城市。這座城市中...
    李李李李spear閱讀 287評(píng)論 0 0

友情鏈接更多精彩內(nèi)容