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

《算法设计与分析》第三章学习记录

1.按照动态规划法的求解步骤分析作业题目“数字三角形”:
1.1设a[][]=三角形第i行第j列的值(0<=i<n,0<=j<=i)
定义:dp[i][j]=从(i,j)出发到底边的最大路径和
递归方程式:dp[i][j] = a[i][j] + max(dp[i+1][j], dp[i+1][j+1])
边界条件:dp[n-1][j] = a[n-1][j] (0 ≤ j ≤ n-1)

1.2表的维度:二维表 dp[i][j],大小n×n
填表范围:0<i<n-1, 0<j<i
填表顺序:从最后一行往上到第0行
最优值:dp[0][0]

1.3时间复杂度:1+2+3+......+n = n*(n+1)/2 = O(n^2)
空间复杂度:用了二维数组所以是 O(n^2)

2.动态规划算法基本思想是将原问题分解成若干个子问题,通过逐步求解子问题来得到原问题的解。一般来说动态规划算法的流程都是:先找出最优解的性质,然后写出递归方程,再通过自下而上的方式算出最优解,最后通过若干个子问题的最优解求出原问题的最优解。我认为在使用动态规划解决问题是最重要的点是找出问题的规律,寻找重复计算的模式。在解题时容易被看起来很复杂的问题吓到,但是找到最优子结构,列出递归方程式后问题便迎刃而解。

http://www.jsqmd.com/news/43956/

相关文章:

  • 第29天(中等题 二分查找)
  • #题解#洛谷 P3029 Cow Lineup S #双指针#离散化#
  • 题解:AtCoder ARC192D Fraction Line
  • Linux如何安装利用Rust指南
  • tryhackme-网络安全基础-网络- 网络概念-24
  • 如何创建你的百Google度!!(实现双搜索引擎页面)
  • P7152 [USACO20DEC] Bovine Genetics G
  • CF1592E Bored Bakry
  • 如何在ISA-95体系中采用Apache Camel + MQTT Broker衔接L3与L4 Legacy应用
  • 11月18日日记
  • 一文讲清:数据清洗、数据中台、数据仓库、数据治理 - 智慧园区
  • 通过liquibase实现一个简单的数据库适配器,自动适配60+数据库
  • 人工智能之编程进阶 Python高级:第四章 数学类模块
  • Pandas GroupBy 的 10 个实用技巧
  • lvs详细配置
  • Lazarus使用cef打开文件和下载设置
  • 题解:P14435 [JOISC 2013] 收拾吉祥物 / Mascots
  • Solon AI 开发学习 - 1导引
  • linux c 线程池
  • linux c 文件是否存在
  • 2025 年 11 月滚珠丝杆厂家推荐排行榜,高负载滚珠丝杆,耐磨滚珠丝杆,检测仪器高速滚珠丝杆,螺母滚珠丝杆,医用自动化滚珠丝杆公司推荐
  • Pjudge #21741. 【NOIP Round #5】青鱼和区间 题解
  • 11月18日
  • UE4/UE5反射系统动态注册机制解析 - 实践
  • 完全平方和的推广
  • 三维偏序整体二分?
  • 做题随笔:P3403
  • 2025.11.18
  • 《从纪律委员到AI元人文开放者》
  • MEMS与CMOS的3D集成技术研究进展 - 指南