动态规划经典题目_动态规划详解

动态规划经典题目_动态规划详解一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -> 向右向下 -> 向右 -&gt


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

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

示例 1:
在这里插入图片描述

输入:m = 3, n = 7
输出:28
示例 2:

输入:m = 3, n = 2
输出:3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。

  1. 向右 -> 向下 -> 向下
  2. 向下 -> 向下 -> 向右
  3. 向下 -> 向右 -> 向下
    示例 3:

输入:m = 7, n = 3
输出:28
示例 4:

输入:m = 3, n = 3
输出:6

提示:

1 <= m, n <= 100
题目数据保证答案小于等于 2 * 109

题解
简单动态规划即可

class Solution { 
   
public:
    int uniquePaths(int m, int n) { 
   
        vector<vector<int> >f(2,vector<int>(n + 1,0));
        f[1][1] = 1;
        for(int i = 1;i <= m;i ++){ 
   
            for(int j = 1;j <= n;j ++){ 
   
                if(i == 1 & j == 1)continue;
                f[i & 1][j] = f[(i - 1) & 1][j] + f[i & 1][j - 1];
            }
        }
        return f[m & 1][n];
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168876.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 玻尔兹曼公式推导碰撞项_玻尔兹曼方程表达式

    玻尔兹曼公式推导碰撞项_玻尔兹曼方程表达式在做别的事之前,让我们试做一个假想的研究。假定我们有一个很好的能跟踪单个运动粒子而不产生任何其他效应的激光探测器,把这个探测器应用在一个波尔兹曼气体上,可以很容易发现,无论粒子间碰撞能否忽略,牛顿轨道方程始终是有意义的(如果需要考虑碰撞,沿牛顿轨道的粒子存活几率是应该引进的)。问题就这样产生了:因为波尔兹曼方程和给定的初值边值条件已经构成了一个完全集合,我们是否应该简单的无视牛顿方程?如果牛顿方程…

    2022年8月11日
  • python bz2模块

    python bz2模块单次压缩和解压缩单次压缩(bz2.compress)In[40]:compressStr=’usebz2moduletocompressstring’In[41]:bz2.compress(compressStr,6)Out[41]:’BZh61AY&SY\xa5i\x9c”\x00\x00\x0f\x99\x80@\x00\x10\x00\x1e\xa7\xde\x

    2022年5月3日
  • 英语单词记忆法拆分2000个_usually拆分记忆

    英语单词记忆法拆分2000个_usually拆分记忆给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s = “catsanddog”wordDict = [“cat”, “cats”, “and”, “sand”, “dog”]输出:[ “cats and dog”, “cat sand dog”]示例 2:输入:s = “

    2022年8月9日
  • 一遍记住Java常用的八种排序算法与代码实现[通俗易懂]

    一遍记住Java常用的八种排序算法与代码实现[通俗易懂]一遍记住Java常用的八种排序算法与代码实现

    2022年4月21日
  • Laravel Model的 fillable (白名单) 和 guarded (黑名单)属性

    Laravel Model的 fillable (白名单) 和 guarded (黑名单)属性Laravel Model的 fillable (白名单) 和 guarded (黑名单)属性

    2022年4月24日
  • chmod命令用法举例「建议收藏」

    chmod命令用法举例「建议收藏」chmod命令用于改变linux系统文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。利用chown命令来更改某个文件或目录的所有者。利用chgrp命令来更改某个文件或目录的用户组。 chmod命令详细情况如下:1.命令格式:chmod[-cfvR][–help][–version]modefile  …

    2022年6月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号