六大算法之动态规划_动态规划求解最大子数组

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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];
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169159.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Java快排算法(java工程师需要掌握哪些知识)

    思路对于给定的数组,从中选一个元素为比较对象,一般选最左或最右的元素,选左边为升序排,选右边反之。数组array[]:最左边:target=5数组下标:i=0,j=9步骤:①从右边遍历数组,把array[j]比5小的放在5的左边,j–;交换位置后i=0,j=7:②从左边遍历数组,把array[i]比5大的放在5的右边,i++;交换位置后i=…

  • qtabwidget设置表头_QTabWidget添加自定义样式[通俗易懂]

    qtabwidget设置表头_QTabWidget添加自定义样式[通俗易懂]setStyleSheet(“QTabWidget::pane{border-width:1px;border-color:rgb(48,104,151);\border-style:outset;background-color:rgb(132,171,208);\background:transparent;}\QTabWidget::tab-bar{border-width:…

  • adni数据集简介_ADP数据

    adni数据集简介_ADP数据ADNI数据和样例

  • NIO与传统IO的区别

    NIO与传统IO的区别传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量小于连接数量,所以每个线程进行IO操作时就不能阻塞,如果阻塞的话,有些连接就得不到处理,NIO提供了这种非阻塞的能力。小量的线…

  • 12个最好的JavaScript动画框架

    12个最好的JavaScript动画框架1.Scripty2scripty2是一个用于基于HTML的高级用户界面的开源JavaScript框架。或者简单地说,scripty2帮助你构建一个更美味的网络:视觉效果,UI组件和CSS实用程序。scripty2是script.aculo.us的完全重写和重新实现,具有模块化结构,旨在简化高度自定义的用户界面效果和行为的开发。2.JSAnimjsAnim

  • python中if __name__ == ‘__main__’是什么意思

    python中if __name__ == ‘__main__’是什么意思执行当前文件中: __name__=='__main__'是返回true,引用模块中的则返回false如:现在有两python文件,one.py和two.py

发表回复

您的电子邮箱地址不会被公开。

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