Skip to content

Latest commit

 

History

History

62-UniquePaths

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Unique Paths

Problem can be found in here!

def uniquePaths(m: int, n: int) -> int:
    return comb(m+n-2, n-1)

Explanation: There are m+n-2 steps to move from top-left to bottom-right. In m+n-2 steps, there are m-1 steps we have to move down and n-1 steps we have to move right. Simply put, we need to calculate how many ways we could choose m-1 down moves from m+n-2 moves, or n-1 right moves from m+n-2 moves. Therefore, the solution is C_{n-1}^{m+n-2}.

Time Complexity: O(m+n), Space Complexity: O(1), where m is the number of rows and n is the number of columns.

Solution 2: Dynamic Programming

def uniquePaths(m: int, n: int) -> int:
    memo = [1] * n
    for _ in range(1, m):
        for j in range(1, n):
            memo[j] = memo[j - 1] + memo[j]
    return memo[-1] if m and n else 0

Time Complexity: O(m+n), Space Complexity: O(n), where m is the number of rows and n is the number of columns.