[Swift Weekly Contest 108]LeetCode931. 下降路径最小和 | Mini
Given a?square?array of integers? A falling path starts at any element in the first row,and chooses one element from each row.? The next row‘s choice must be in a column that is different from the previous row‘s column by at most one. ?Example 1: Input: [[1,2,3],[4,5,6],[7,8,9]]
Output: 12 Explanation: The possible falling paths are:
The falling path with the smallest sum is? ?Note:
给定一个方形整数数组? 下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列。 示例: 输入:[[1,9]] 输出:12 解释: 可能的下降路径有:
和最小的下降路径是? ?提示:
196ms 1 class Solution { 2 func minFallingPathSum(_ A: [[Int]]) -> Int { 3 let m:Int = A[0].count 4 var dp:[Int] = A[0] 5 for j in 0..<(A.count - 1) 6 { 7 var row:[Int] = A[j] 8 var ndp:[Int] = [Int](repeating: Int.max / 2,count: m) 9 for i in 0..<m 10 { 11 for k in -1...1 12 { 13 if i+k >= 0 && i+k < m 14 { 15 ndp[i + k] = min(ndp[i + k],dp[i] + A[j + 1][i + k]) 16 } 17 } 18 } 19 dp = ndp 20 } 21 var ret:Int = Int.max 22 for v in dp 23 { 24 ret = min(ret,v) 25 } 26 return ret 27 } 28 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |