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

代码随想录训练营打卡Day33| 动态规划part02

62.不同路径

题目链接:62.不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。

问总共有多少条不同的路径?

思路:每一个状态是在上一个状态下进行推导的,所以用dp维护每个位置的路径;先对起点所在的行和列初始化为1【因为只能通过向下或向右达到】;

63. 不同路径 II

题目链接:63. 不同路径 II

给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角(即 grid[0][0])。机器人尝试移动到 右下角(即 grid[m - 1][n - 1])。机器人每次只能向下或者向右移动一步。

网格中的障碍物和空位置分别用 1 和 0 来表示。机器人的移动路径中不能包含 任何 有障碍物的方格。

返回机器人能够到达右下角的不同路径数量。

思路:只有障碍的下方和右方会被影响,直接将dp表对应的地方置0;初始化起点的行列的时候也要考虑到障碍的存在;

343. 整数拆分

题目链接:343. 整数拆分

给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。

返回 你可以获得的最大乘积 。

思路:第一眼这样分割该怎么从上一个状态来进行推导呢?;通过对 7 - 9 的情况进行分析,拆分为 3 和 2 的情况乘积最大;【官方题解是直接枚举,这种找3和2的属于贪心大概?】

对每个 i(从小到大):

  • 枚举最后一次切分位置 j,其中 1 ≤ j < i

  • 两种选择取最大:

    1. 只切一次:j * (i - j)

    2. 把右半段继续细分:j * dp[i - j]

http://www.dtcms.com/a/566196.html

相关文章:

  • Shell简单学习
  • 2.2 常用控件
  • 潍坊网站制作软件做网站公司费用
  • 谈谈主流开源技术证书
  • 网站定位代码wordpress国内视频教程
  • CF Round 1027 Div.3 vp补题
  • Java面向对象编程:类与对象、继承、多态及final关键字详解
  • 自己制作网站app网站必须要实名认证么
  • 网站建设技术选择网站如何做ins链接分享
  • 图像生成:PyTorch从零开始实现一个简单的扩散模型
  • 网站如何做标题优化硬件工程师培训机构哪家好
  • vue canvas标注
  • 临沂手机网站信息推广技术公司电话号码wordpress插件卡
  • JavaScript ES5 函数全解析:从基础到高级应用
  • 做博物馆网站最重要上海百度提升优化
  • 做网站挣钱吗现在广东省自然资源厅吴鋆
  • 多个ElMessageBox层级问题
  • ES查询语法总结
  • 个人网站备案不能盈利东莞常平镇地图全图
  • 生物医药业销售管理软件推荐
  • 东莞网站建设seo优化华能电子商务平台
  • Python循环嵌套
  • 深入 Lua 元表与元方法
  • 做外贸要看哪些网站好网站营销的优缺点
  • k8s node节点操作
  • 河北建设网站首页网站ui标准
  • Java 线程池深度解析:原理、实战与性能优化​
  • 医疗网站有哪些教你如何建设一个模板网站
  • 宁波网站建设方案咨询做网站网络合同
  • 网站建设与网络推广的关系wordpress 首页显示文章数量