This is a typical DP (Dynamic Programming) problem. Since the robot could only
move to down or to right, the number of ways to get to position `x, y` could
be calculate by number of ways to get to `x - 1, y` plus number of ways to
get to `x, y - 1`. So we could use DP get the final answer from top-down,
left-right order.

Since every node only relies on it's left and up node, we could only use one 1-D array to save the DP status.

```
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
dp = [1] * n
for _ in range(m - 1):
for i in range(1, n):
dp[i] += dp[i - 1]
return dp[-1]
```