Given a square matrix of size N*N, where each cell is associated with a specific cost. A path is defined as a specific sequence of cells which starts from top left cell move only right or down and ends on bottom right cell. We want to find a path with maximum average over all existing paths. Average is computed as total cost divided by number of cells visited in path.
Input : Matrix = [1, 2, 3 4, 5, 6 7, 8, 9] Output : 5.8 Path with maximum average is, 1 -> 4 -> 7 -> 8 -> 9 Sum of the path is 29 and average is 29/5 = 5.8
One interesting observation is, the only allowed moves are down and right, we need N-1 down moves and N-1 right moves to reach destination (bottom rightmost). So any path from from top left corner to bottom right corner requires 2N – 1 cells. In average value, denominator is fixed and we need to just maximize numerator. Therefore we basically need to to find maximum sum path. Calculating maximum sum of path is a classic dynamic programming problem, if dp[i][j] represents maximum sum till cell (i, j) from (0, 0) then at each cell (i, j), we update dp[i][j] as below,
for all i, 1 <= i <= N dp[i] = dp[i-1] + cost[i]; for all j, 1 <= j <= j dp[j] = dp[j-1] + cost[j]; otherwise dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + cost[i][j];
Once we get maximum sum of all paths we will divide this sum by (2N – 1) and we will get our maximum average.
This article is contributed by Utkarsh Trivedi. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Maximum games played by winner
- Friends Pairing Problem
- Maximum path sum in a triangle.
- Maximum sum Bi-tonic Sub-sequence
- Longest subsequence such that difference between adjacents is one
- Maximum subsequence sum such that no three are consecutive
- Maximum sum of pairs with specific difference
- Maximum XOR value in matrix
- Recursively break a number in 3 parts to get maximum sum
- Maximum mirrors which can transfer light from bottom to right
- Maximum weight path ending at any element of last row in a matrix
- Choice of Area
- Minimum cost to fill given weight in a bag
- Maximum Length Chain of Pairs | DP-20
- Min Cost Path | DP-6
Improved By : nitin mittal