Created
June 10, 2024 22:01
-
-
Save shanecandoit/e87bff812ef496e9d2634e0c6bcfcf4e to your computer and use it in GitHub Desktop.
unique paths to end of maze, solve back to front
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://leetcode.com/problems/unique-paths/description/ | |
""" | |
62. Unique Paths | |
Medium | |
Topics | |
Companies | |
There is a robot on an m x n grid. The robot is initially located at the top-left corner (i.e., grid[0][0]). The robot tries to move to the bottom-right corner (i.e., grid[m - 1][n - 1]). The robot can only move either down or right at any point in time. | |
Given the two integers m and n, return the number of possible unique paths that the robot can take to reach the bottom-right corner. | |
The test cases are generated so that the answer will be less than or equal to 2 * 109. | |
Example 1: | |
Input: m = 3, n = 7 | |
Output: 28 | |
Example 2: | |
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 -> Down -> Down | |
2. Down -> Down -> Right | |
3. Down -> Right -> Down | |
Constraints: | |
1 <= m, n <= 100 | |
""" | |
class Solution: | |
def uniquePaths(self, m: int, n: int) -> int: | |
dp = [[1]*n for _ in range(m)] | |
for i in range(1, m): | |
for j in range(1, n): | |
dp[i][j] = dp[i-1][j] + dp[i][j-1] | |
return dp[-1][-1] | |
assert Solution().uniquePaths(3, 7) == 28 | |
assert Solution().uniquePaths(3, 2) == 3 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment