美文网首页
剑指 Offer II 100. 三角形中最小路径之和

剑指 Offer II 100. 三角形中最小路径之和

作者: 邦_ | 来源:发表于2022-07-13 09:30 被阅读0次
    
    func minimumTotal(_ triangle: [[Int]]) -> Int {
            
            let n = triangle.last?.count ?? 0
            let temp = Array.init(repeating: 0, count: n)
            var dp = Array.init(repeating: temp, count: n)
            for i in 0..<n {
                for j in 0..<n {
                    if i == 0 && j == 0 {
                        dp[0][0] = triangle[0][0]
                    }else if i == 0 {
                        
                        dp[0][j] = dp[0][j - 1] + triangle[j].last!
                    }else if j == 0 {
                        
                        dp[i][0] = dp[i - 1][0] + triangle[i][0]
                    }else {
                          //会发现纵坐标是相同的,横坐标是i + j
                        if (i + j < n) && j < triangle[i+j].count {
                            dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + triangle[i+j][j]
                        }  
                    }
                }
                
            }
            var minValue = 0
            
            for i in 0..<n {
                if i == 0 {
                    minValue = dp[i][n - i - 1]
                }else {
                    minValue = min(dp[i][n - i - 1],minValue)
    
                }
            }
            
            return minValue
        
        
        }
    
    
    
    
    
    
    
    
    
    
    

    相关文章

      网友评论

          本文标题:剑指 Offer II 100. 三角形中最小路径之和

          本文链接:https://www.haomeiwen.com/subject/eujvbrtx.html