forked from TheAlgorithms/JavaScript
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUniquePaths.js
More file actions
Latest commit
40 lines (35 loc) · 1.15 KB
/
Copy pathUniquePaths.js
File metadata and controls
40 lines (35 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
*
* Unique Paths
*
* There is a robot on an `m x n` grid.
* The robot is initially located at the top-left corner.
* The robot tries to move to the bottom-right corner.
* 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.
* More info: https://leetcode.com/problems/unique-paths/
*/
/*
* @param {number} m
* @param {number} n
* @return {number}
*/
constuniquePaths=(m,n)=>{
// only one way to reach end
if(m===1||n===1)return1
// build a linear grid of size m
// base case, position 1 has only 1 move
constpaths=newArray(m).fill(1)
for(leti=1;i<n;i++){
for(letj=1;j<m;j++){
// paths[j] in RHS represents the cell value stored above the current cell
// paths[j-1] in RHS represents the cell value stored to the left of the current cell
// paths [j] on the LHS represents the number of distinct pathways to the cell (i, j)
paths[j]=paths[j-1]+paths[j]
}
}
returnpaths[m-1]
}
export{uniquePaths}