zoukankan      html  css  js  c++  java
  • 不同路径

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

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

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

    示例 1:

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

    输入: m = 7, n = 3
    输出: 28

    一维dp:

     1 public class T62 {
     2     public int uniquePaths(int m, int n) {
     3         int[] dp = new int[n];
     4         for (int i = 0; i < m; i++) {
     5             for (int j = 0; j < n; j++) {
     6                 if (i == 0 && j != 0) {
     7                     dp[j] = dp[j - 1];
     8                 } else if (i != 0 && j == 0) {
     9                     dp[j] = dp[j];
    10                 } else if (i != 0 && j != 0) {
    11                     dp[j] = dp[j - 1] + dp[j];
    12                 } else {
    13                     dp[j] = 1;
    14                 }
    15             }
    16         }
    17         return dp[n - 1];
    18     }
    19 }
    一回生,二回熟
  • 相关阅读:
    CCF|学生排队|Java
    CCF|分蛋糕|Java
    CCF|公共钥匙盒|Java
    CCF|打酱油|Java
    CCF|游戏|Java
    CCF|最小差值|Java
    CCF|路径解析|Java
    CCF|碰撞的小球
    CCF|跳一跳
    Win10 1803更新UWP无法安装的解决办法|错误代码0x80073D0D
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12446585.html
Copyright © 2011-2022 走看看