LeetCode算法题之120. Triangle(Medium)【Python3题解】

该博客解析了LeetCode中的120题,三角形最小路径和问题。通过动态规划方法,定义dp表格记录每个位置的最小路径和,从而找到从顶部到底部的最小路径总和。博主提供了详细的解题思路及Python3代码实现,并展示了运行时间和内存占用情况。
摘要由CSDN通过智能技术生成

题目描述:
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.

For example, given the following triangle

在这里插入图片描述

The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11).

Note:

Bonus point if you are able to do this using only O(n) extra space, where n is the total number of rows in the triangle.

题目大意:

  • 扒去题目外部的唬人的外衣,就是给定你一个数组,如例子中的图片所示,然后题中给你规定了一种行进方式,就是每个位置你只能向下面和它挨着最近的那两个位置走,语言描述不太准确,直接看例子图片,就会明白了
  • 最后让你返回走到底,也就是最后一行时,最小的路径和

解题思路:

  • 首先声明,此题为动态规划标签下的题目,下面直接上动态规划解法
  • 第一步:dp table的定义是什么?因为题目中让你求最小路径和啊,那么如果你把到达每个位置的最小的路径和都写出来了,就是将那个dp table 填充好,那答案不就是最后一行中,最小的那个数吗
  • 故,dp table就定义为每个位置的最小路径和,即dp[row][column]代表第row行,第column列的那个位置上的最小路径和
  • 第二步:怎么将每个位置的dp table的值,按照一个规律推导出来呢?其实各位在纸上一写,就明白了,一般的位置的最小路径和,就等于那个位置的上一行,那个位置的列的相邻两个的dp table 最小值,加上那个位置的值,这里语言还是描述不准确,看代码,就明白了
  • 第三步:就是代码实现想法即可
  • 最后想说,其实这道题的话,如果你将dp table 的定义,定义准确了,基本推导和代码实现不是问题,还是常规填充dp table 即可

少废话,上代码:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值