Created
June 21, 2014 18:49
-
-
Save gabhi/2d882ee081c7c0061b16 to your computer and use it in GitHub Desktop.
Count number of path from top left to bottom right in matrix
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
using namespace std; | |
// Returns count of possible paths to reach cell at row number m and column | |
// number n from the topmost leftmost cell (cell at 1, 1) | |
int numberOfPaths(int m, int n) | |
{ | |
// Create a 2D table to store results of subproblems | |
int count[m][n]; | |
// Count of paths to reach any cell in first column is 1 | |
for (int i = 0; i < m; i++) | |
count[i][0] = 1; | |
// Count of paths to reach any cell in first column is 1 | |
for (int j = 0; j < n; j++) | |
count[0][j] = 1; | |
// Calculate count of paths for other cells in bottom-up manner using | |
// the recursive solution | |
for (int i = 1; i < m; i++) | |
{ | |
for (int j = 1; j < n; j++) | |
// By uncommenting the last part the code calculatest he total | |
// possible paths if the diagonal Movements are allowed | |
count[i][j] = count[i-1][j] + count[i][j-1]; //+ count[i-1][j-1]; | |
} | |
return count[m-1][n-1]; | |
} | |
// Driver program to test above functions | |
int main() | |
{ | |
cout << numberOfPaths(3, 3); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment