当前位置: 首页 > news >正文

沛县互助网站开发成都房产信息网 官网

沛县互助网站开发,成都房产信息网 官网,专题网站开发 交互方法,基于php的网站开发流程图文章目录 写在前面Tag题目来源解题思路方法一:动态规划 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行…

文章目录

  • 写在前面
  • Tag
  • 题目来源
  • 解题思路
    • 方法一:动态规划
  • 写在最后

写在前面

本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更……

专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾与总结,文章结构大致如下,部分内容会有增删:

  • Tag:介绍本题牵涉到的知识点、数据结构;
  • 题目来源:贴上题目的链接,方便大家查找题目并完成练习;
  • 题目解读:复述题目(确保自己真的理解题目意思),并强调一些题目重点信息;
  • 解题思路:介绍一些解题思路,每种解题思路包括思路讲解、实现代码以及复杂度分析;
  • 知识回忆:针对今天介绍的题目中的重点内容、数据结构进行回顾总结。

Tag

【动态规划】【数组】


题目来源

120. 三角形最小路径和


解题思路

方法一:动态规划

定义状态

f[i][j] 表示从三角形顶部到达位置 (i, j) 的最小路径,ij 分别表示 triangle 数组中的第 i 个数组中的第 j 个元素(索引从 0 开始)。

转移关系

由于每一步只能移动到下一行的「相邻节点」,因此要到达位置 (i, j) 处,上一步只能在位置 (i-1, j)(i-1, j-1)。我们需要在这两个位置中选择一个路径和较小的进行转移,转移关系为:

f [ i ] [ j ] = m i n ( f [ i − 1 ] [ j ] , f [ i − 1 ] [ j − 1 ] ) + t r i a n g l e [ i ] [ j ] f[i][j] = min(f[i-1][j], f[i-1][j-1]) + triangle[i][j] f[i][j]=min(f[i1][j],f[i1][j1])+triangle[i][j]

base case

边界情况有三种,一是初始位置 f[0][0] = triangle[0][0].

二是对于每个数组中的第一个位置,即 f[i][j]j = 0 的情况,上一个位置只能是 (i-1, j),因此此时有:

f [ i ] [ 0 ] = f [ i − 1 ] [ j ] + t r i a n g l e [ i ] [ j ] , i > = 1 f[i][0] = f[i-1][j] + triangle[i][j], i>=1 f[i][0]=f[i1][j]+triangle[i][j],i>=1

三是 i = j 时,上一个位置只能是 (i-1, j-1),因此有:

f [ i ] [ i ] = f [ i − 1 ] [ i − 1 ] + t r i a n g l e [ i ] [ i ] , i = j f[i][i] = f[i-1][i-1] + triangle[i][i], i=j f[i][i]=f[i1][i1]+triangle[i][i],i=j

最后返回

最后返回数组 f[n-1] 中的最小值。

实现代码

class Solution {
public:int minimumTotal(vector<vector<int>>& triangle) {int n = triangle.size();vector<vector<int>> f(n, vector<int>(n));f[0][0] = triangle[0][0];for (int i = 1; i < n; ++i) {f[i][0] = f[i-1][0] + triangle[i][0];for (int j = 1; j < i; ++j) {f[i][j] = min(f[i-1][j], f[i-1][j-1]) + triangle[i][j];}f[i][i] = f[i-1][i-1] + triangle[i][i];}return *min_element(f[n-1].begin(), f[n-1].end());}
};

复杂度分析

时间复杂度: O ( n 2 ) O(n^2) O(n2) n n n 是三角形的行数。

空间复杂度: O ( n 2 ) O(n^2) O(n2)。我们需要一个 n × n n \times n n×n 的二维数组存放所有的状态。


写在最后

如果您发现文章有任何错误或者对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度的方法,欢迎评论区交流。

最后,感谢您的阅读,如果有所收获的话可以给我点一个 👍 哦。

http://www.yayakq.cn/news/711404/

相关文章:

  • wordpress 批量pdf网站优化软件破解版
  • 特色美食网站建设策划书杭州计算机公司排名
  • 网站的搜索功能怎么做广州网站建设免费
  • 政务网站设计制作小诗集
  • 网站的推广策略浙江金华市建设局网站
  • 宁波网站建设报价上海松江 网站建设公司
  • 公司网站建设费计入什么费用写网站软件
  • wordpress整站迁移出现403网络服务提供者发现用户利用其网络
  • 制作钓鱼网站的费用外贸公司如何寻找客户
  • 网站开发 报价单 表格青岛市建设局网站
  • 宁夏政务网站建设标准网络推广外包公司
  • 网站可以做充值吗工商局官网登录
  • 图片做网站连接帝国和织梦那个做企业网站好
  • 推广怎么推广郑州网站seo排名
  • 网站项目接单企业网站管理
  • wordpress 站内搜索代码郑州音乐制作公司
  • 新手怎么做电商在哪个网站磁县企业做网站推广
  • 什么网站可以做设计赚钱广州企业搜索引擎优化服务
  • 响应式网站发展建设网站列表
  • wordpress文章发布到目录贵阳关键词优化平台
  • 专业视频网站开发公司响应式企业网站建设
  • 哪些网站是wordpress互联网站账户e服务平台
  • 怎么套模板 网站模板网站内容建设和管理系统
  • 网页设计与网站建设考试名词解释2019上海官网建设教程
  • 管理系统网站开发wordpress流量插件
  • 网站建设支付安全如何建设国外的网站
  • 常州知名做网站服务温州最好的网站建设公司
  • 网站怎么弄实名制认证北京ui网页设计素材
  • 做网站域名费向哪里交做网站用什么字体最明显
  • 网站建设捌金手指花总二九网络推广网站公司