LeetCode 931. Minimum Falling Path Sum解题报告(python)

931. Minimum Falling Path Sum

  1. Minimum Falling Path Sum python solution

题目描述

Given a square array of integers A, we want the minimum sum of a falling path through A.
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.
在这里插入图片描述

解析

解题思路比较简单,一层层计算下来即可,见代码。

// An highlighted block
class Solution:
    def minFallingPathSum(self, A):
        """
        :type A: List[List[int]]
        :rtype: int
        """
        for i in range(1, len(A)):
            for j in range(len(A[0])):
                if j-1>=0:
                    topleft=A[i-1][j-1]
                else:
                    topleft=float('inf')
                if j+1<len(A[0]):
                    topright=A[i-1][j+1]
                else:
                    topright=float('inf')
                A[i][j] += min(topleft, topright, A[i-1][j])
        return min(A[-1])       

Reference

https://leetcode.com/problems/minimum-falling-path-sum/discuss/221123/Very-Easy-to-Understand-Python-6-line-DP-with-no-extra-space-beats-90

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值