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 3 x 7 grid. How many possible unique paths are there?
Note: m and n will be at most 100.
Subscribe to see which companies asked this question
class Solution(object):
def findPath(self, m, n):
if (m,n) in self.cache:
return self.cache[(m,n)]
m_step, n_step =0,0
if m > 0:
m_step = self.findPath(m - 1, n)
if n > 0:
n_step = self.findPath(m, n - 1)
self.cache[(m,n)] = m_step + n_step
return self.cache[(m,n)]
def uniquePaths(self, m, n):
"""
:type m: int
:type n: int
:rtype: int
"""
self.cache = {(0, 0): 1}
return self.findPath(m - 1, n - 1)
主要思路是加缓存的DFS