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

算法进阶-动态规划

经典例题

在这里插入图片描述
大家肯定想用递归做
思路大概就是这样
递归到最后一行就是对应的D(i,j)
然后往上推

在这里插入图片描述
但是这样会超时,因为存在大量的重复计算
比如调用第一行MasSum(7)需要调用MaxSum(3)和MaxSum(8)
但是调用第二行MaxSum(3)还要调用3行的MaxSum(8)和3行的MaxSum(1)
第二行的MaxSum(8)也会调用第三行的MaxSum(1)
是不是第三行的MaxSum(1)就调用了两次
这就重复了
随着数据量增多,重复也会增多
在这里插入图片描述
改进
在这里插入图片描述
算出来的数存起来,再调用直接取就行,避免重复计算
程序代码
在这里插入图片描述
so:在算法中避免重复计算来提高算法效率就是动态规划

一般思路

先讲答案枚举一些(或全部)
画出一个二叉树-尝试写一个递归函数来求解
如果发现有大量的重复计算
可以用动态规划-可以用数组或者哈希表进行存储

最终可以找规律写成迭代形式(循环)

http://www.lryc.cn/news/21560.html

相关文章:

  • python的读写操作
  • Mybatis中添加、查询、修改、删除
  • C++---线性dp---传纸条(每日一道算法2023.2.26)
  • 浅谈 C/C++ 的输入输出
  • 【计算机三级网络技术】 第二篇 中小型系统总体规划与设计
  • Boosting Crowd Counting via Multifaceted Attention之人群密度估计实践
  • python之面向对象编程
  • 常见前端基础面试题(HTML,CSS,JS)(七)
  • 产业链金风控基本逻辑
  • Java高级点的知识
  • MyBatis - 05 - 封装SqlSessionUtil工具类(用于获取SqlSession对象)并测试功能
  • Java中BIO、NIO和AIO的区别和应用场景
  • Python安装教程(附带安装包)
  • 华为OD机试用Python实现 -【信号发射和接收】(2023-Q1 新题)
  • Springboot整合 Thymeleaf增删改查一篇就够了
  • BigScience bloom模型
  • Squid服务的缓存概念
  • Hadoop YARN
  • 使用 Macrobenchmark 测试 Android 应用性能
  • 【django】django-simpleui配置后,后台显示空白页解决方法
  • 【035】基于Vue的电商推荐管理系统(含源码数据库、超详细论文)
  • 【c++】模板1—函数模板
  • windows10 wsl子系统固定ip启动分配网卡法
  • ARM+Linux日常开发笔记
  • 在线文档技术-编辑器篇
  • top -p pid为什么超过100%
  • #高光谱图像分类#:分类的方法有哪些?
  • 观察者模式
  • 前端组件库自定义主题切换探索-03-webpack-theme-color-replacer webpack 同时替换多个颜色改造
  • Redis高级-主从复制相关操作