admin 管理员组

文章数量: 1087139


2024年4月21日发(作者:读取xml文件的路径)

二维数组 最大路径 leetcode

题目描述:

给定一个二维数组,找到最大的路径和。

示例:

输入:

Plain Textnums = [

[1,2,3],

[4,5,6],

[7,8,9]

]

输出: 45

解释: 最大路径和的路径可以是沿着对角线选择数字,即选择左上角到右下

角的路径 1->2->3->6->9,总和为 1 + 2 + 3 + 6 + 9 = 21。但是,我们也可以

选择一些其他的路径,例如选择第一行和第三行,然后选择第二列,即 7->8->9

和 4->5,总和为 7 + 8 + 9 + 4 + 5 = 45。因此,最大的路径和是 45。解题思

路:

可以使用动态规划来解决这个问题。对于每个点,我们计算以该点为起点的

所有路径和的最大值。由于对角线上的数字可以组成最大路径和,因此我们可以

将问题转化为在每行和每列中分别找到最大的路径和。

具体实现步骤如下:

1. 对于第一行中的每个元素,我们将其路径和设置为该元素本身,即 dp[i][0]

= nums[i][0]。

2. 对于第一列中的每个元素,我们将其路径和设置为该元素本身,即 dp[0][j]

= nums[0][j]。

3. 对于其他元素,我们可以通过取上一行和上一列的路径和的最大值来计

算当前元素的路径和,即 dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + nums[i][j]。

4. 最后,我们遍历最后一行和最后一列的所有元素,找到其中的最大值即

可。


本文标签: 路径 选择 解决 规划 数字