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

美橙互联 网站备案厦门 外贸商城网站

美橙互联 网站备案,厦门 外贸商城网站,公司做网站哪个公司做得好,app网站软件题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer#xff08;专项突击版#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 一个机器人位于一个 m x n 网格的左上角 #xff08;起始点在下… 题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer专项突击版系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 “Start” 。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角在下图中标记为 “Finish” 。 问总共有多少条不同的路径 示例 1 输入m 3, n 7输出28 示例 2 输入m 3, n 2输出3解释从左上角开始总共有 3 条路径可以到达右下角。 向右 - 向下 - 向下向下 - 向下 - 向右向下 - 向右 - 向下 示例 3 输入m 7, n 3输出28 示例 4 输入m 3, n 3输出6 提示 1 m, n 100题目数据保证答案小于等于 2 * 10^9 题目思考 如何优化时间和空间复杂度? 解决方案 方法 1 分析题目, 机器人只能向下或向右移动, 我们可以利用这一点, 累加当前坐标的左边和上边相邻坐标的路径数来得到当前坐标的路径数显然这就是动态规划的思路: 设 dp[r][c] 代表坐标(r,c)的路径数初始化 dp[0][0] 1, 其他值全是 0, 表示开始时起点的路径数为 1然后进行状态转移: dp[r][c] dp[r-1][c] dp[r][c-1] (如果 r 或 c 为 0, 则相应的 r-1 或 c-1 的 dp 值就是 0, 只能从另一个方向转移而来)最终右下角坐标的 dp[m-1][n-1] 就代表总路径数 下面的代码有详细的注释, 方便大家理解 复杂度 时间复杂度 O(MN): 需要两重循环求 DP 值空间复杂度 O(MN): 二维 DP 数组的空间消耗 代码 class Solution:def uniquePaths(self, m: int, n: int) - int:dp [[0] * n for _ in range(m)]for r in range(m):for c in range(n):if (r, c) (0, 0):# 起点dp值初始化为1dp[r][c] 1else:# 左侧邻居路径数, 不存在时为0ldp 0 if c 0 else dp[r][c - 1]# 上侧邻居路径数, 不存在时为0udp 0 if r 0 else dp[r - 1][c]# 累加两个邻居的路径数dp[r][c] ldp udp# 最终结果就是右下角路径数return dp[m - 1][n - 1]方法 2 上面的 DP 做法固然可以解决这个问题, 那是否可以继续优化呢?答案是肯定的, 我们从另一个角度来思考这个问题, 机器人一共移动 mn-2 次, 然后每次移动要么向下, 要么向右, 一共向下移动 m-1 次, 向右移动 n-1 次相当于从总移动次数 mn-2 中选取 m-1 个, 我们可以利用数学求组合数的方法, 也即 C(mn-2, m-1), 得到的值就是对应的总路径数这里可以额外进行一些优化, 使用 m 和 n 中的较小值来计算组合数, 对应的时间复杂度也是两者的较小值下面的代码有详细的注释, 方便大家理解 复杂度 时间复杂度 O(min(M,N)): 求组合数时需要累乘 M-1 或 N-1 次, 取两者较小值空间复杂度 O(1): 没有使用额外变量 代码 class Solution:def uniquePaths(self, m: int, n: int) - int:# 共有mn-2次移动, 然后从中选择m-1次向下, 剩下n-1次向右# 所以总路径数就是组合数C(mn-2,m-1) (也等于C(mn-2,n-1))# 额外优化, 使用m和n的较小值来计算组合数mn min(m, n)return math.comb(m n - 2, mn - 1)大家可以在下面这些地方找到我~ 我的 GitHub 我的 Leetcode 我的 CSDN 我的知乎专栏 我的头条号 我的牛客网博客 我的公众号: 算法精选, 欢迎大家扫码关注~
http://www.hkea.cn/news/14257487/

相关文章:

  • 合肥网站建设培训中心磁县邯郸网站建设
  • 快手淘客网站是怎么做的东莞专业做外贸网站的公司
  • 邯郸医院网站建设简单的个人简历网页代码
  • 网站开发员需要什么素质带用户中心WordPress主题
  • 免费手机h5模板网站模板英文营销网站建设
  • 西安网站开发制作公司safari网页视频怎么下载
  • 北京视频直播网站建设网站图标怎么设置
  • 基于微信公众号开发网站开发wordpress 排课
  • 极速建站建设国际网站
  • 网站工作室网站metro风格网站模板
  • 流媒体 网站开发灵台教育局网站师资队伍建设
  • 如何建设网站网站WordPress小程序论坛
  • 德阳网站优化郑州网站建设seo优化
  • asp网站js悬浮窗怎么做网页游戏服务端
  • 彩妆网站建设报告十堰seo按天计费
  • ppt接单兼职网站wordpress谷歌广告位插件
  • 旅游网站名称设计广州专业网站建设报价
  • 免费建站工具郑州餐饮网站建设哪家好
  • 如何修改wordpress站红色扁平化网站
  • 樟木头东莞网站建设建网站免费吗
  • 特殊教育学校网站建设方案多个招聘网站格式不一致如何做招聘记录
  • 陕西中洋建设有限公司网站wordpress设置注册页面
  • 成都网站建设冠辰网站建设及网络营销
  • 网站 集约化建设管理举措湖南网站优化推广
  • 网站开发 书深圳app开发合作
  • 韩国网站加速器买东西的网站都有哪些
  • 微商城网站建设行情wap视频网站建设难吗
  • 江苏南京建设工程信息网站网页制作教程视频 网盘
  • 湘潭网站建设多少钱公众号的文章下载 wordpress
  • 建网站流程 知乎建设刷单网站