Given two number N and M. The task is to find the number of shortest paths to reach the cell(i, j) in the grid of size N × M when the moves started from the bottom-left corner
Note: cell(i, j) represents the ith row and jth column in the grid
Input : N = 3, M = 4 Output : 1 3 6 10 1 2 3 4 1 1 1 1 Input : N = 5, M = 2 Output : 1 5 1 4 1 3 1 2 1 1
Approach : An efficient approach is to compute the grid starting from the bottom-left corner.
- The number of shortest paths to reach cell(n, i) is 1, where, 1 < = i < = M
- The number of shortest paths to reach cell(i, 1) is 1, where, 1 < = i < = N
- The number of shortest paths to reach cell(i, j) are the sum the number of shortest paths of cell(i-1, j) and (i, j+1), where, 1 < = j < = M and 1 < = i < = N
Below is the implementation of the above approach :
1 5 1 4 1 3 1 2 1 1
Time complexity: O(N × M)
- Maximum path sum that starting with any cell of 0-th row and ending with any cell of (N-1)-th row
- Minimum cells traversed to reach corner where every cell represents jumps
- Minimum cells required to reach destination with jumps equal to cell values
- Find the minimum number of moves needed to move from one cell of matrix to another
- Number of shortest paths in an unweighted and directed graph
- Final cell position in the matrix
- Distance of nearest cell having 1 in a binary matrix
- Find if a 2-D array is completely traversed or not by following the cell values
- Find sum of all elements in a matrix except the elements in row and/or column of given cell?
- Unique paths in a Grid with Obstacles
- Shortest paths from all vertices to a destination
- Unique paths covering every non-obstacle block exactly once in a grid
- Johnson's algorithm for All-pairs shortest paths
- Shortest distance between two cells in a matrix or grid
- Printing Paths in Dijkstra's Shortest Path Algorithm
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.