--- title: '62. Unique Paths' description: 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 icon: dot topics: - { name: "Math", slug: "math" } - { name: "Dynamic Programming", slug: "dynamic-programming" } - { name: "Combinatorics", slug: "combinatorics" } sidebar: label: 'Unique Paths' badge: 'Medium' --- ### 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` ## Solution ```py class Solution: def uniquePaths(self, m: int, n: int) -> int: dp = [[0 for _ in range(n)] for _ in range(m)] for c in range(n): dp[0][c] = 1 for r in range(m): dp[r][0] = 1 for r in range(1, m): for c in range(1, n): dp[r][c] = dp[r - 1][c] + dp[r][c - 1] return dp[-1][-1] ```