• 19.2.9 [LeetCode 62] Unique Paths


    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).

    The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below).

    How many possible unique paths are there?


    Above is a 7 x 3 grid. How many possible unique paths are there?

    Note: m and n will be at most 100.

    Example 1:

    Input: m = 3, n = 2
    Output: 3
    Explanation:
    From the top-left corner, there are a total of 3 ways to reach the bottom-right corner:
    1. Right -> Right -> Down
    2. Right -> Down -> Right
    3. Down -> Right -> Right
    

    Example 2:

    Input: m = 7, n = 3
    Output: 28
     1 class Solution {
     2 public:
     3     int caluniquePaths(vector<vector<int>>&mark,int m, int n) {
     4         int down = 0, right = 0;
     5         if (mark[m][n] != -1)return mark[m][n];
     6         if (m > 1)
     7             down = caluniquePaths(mark, m - 1, n);
     8         if (n > 1)
     9             right = caluniquePaths(mark, m, n - 1);
    10         mark[m][n] = down + right;
    11         return mark[m][n];
    12     }
    13     int uniquePaths(int m, int n) {
    14         vector<vector<int>>mark(m+1, vector<int>(n+1, -1));
    15         mark[1][1] = 1;
    16         return caluniquePaths(mark, m, n);
    17     }
    18 };
    View Code

    不记忆递归的话会TLE,用空间换时间

  • 相关阅读:
    Java异常简介
    Java中的接口
    Java中的抽象类
    Java的多态
    关于this
    面向对象的继承方式详解
    1像素边框问题
    HTML5之本地存储SessionStorage
    js数组去重的4个方法
    前端模块化
  • 原文地址:https://www.cnblogs.com/yalphait/p/10357630.html
Copyright © 2020-2023  润新知