Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2f741cb

Browse files
Create Min Sum Path in Matrix .java
1 parent bb4889b commit 2f741cb

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
Problem Description
2+
3+
/*
4+
Given a 2D integer array A of size M x N, you need to find a path from top left to bottom right which minimizes the sum of all numbers along its path.
5+
6+
NOTE: You can only move either down or right at any point in time.
7+
8+
9+
10+
Input Format
11+
First and only argument is an 2D integer array A of size M x N.
12+
13+
14+
15+
Output Format
16+
Return a single integer denoting the minimum sum of a path from cell (1, 1) to cell (M, N).
17+
18+
19+
20+
Example Input
21+
Input 1:
22+
23+
A = [ [1, 3, 2]
24+
[4, 3, 1]
25+
[5, 6, 1]
26+
]
27+
28+
29+
Example Output
30+
Output 1:
31+
32+
9
33+
34+
35+
Example Explanation
36+
Explanation 1:
37+
38+
The path is 1 -> 3 -> 2 -> 1 -> 1
39+
So ( 1 + 3 + 2 + 1 + 1) = 8
40+
*/
41+
42+
public class Solution {
43+
public int minPathSum(ArrayList<ArrayList<Integer>> A) {
44+
int m = A.size();
45+
int n = A.get(0).size();
46+
int[][] path = new int[m][n];
47+
path[0][0] = A.get(0).get(0);
48+
for(int i = 0; i<m; i++)
49+
{
50+
for(int j = 0; j<n; j++)
51+
{
52+
if(i == 0 && j == 0)
53+
continue;
54+
if(i== 0 )
55+
path[i][j] = A.get(i).get(j) + path[i][j-1];
56+
else if(j == 0)
57+
path[i][j] = A.get(i).get(j) + path[i-1][j];
58+
else
59+
path[i][j] = Math.min(path[i-1][j], path[i][j-1]) + A.get(i).get(j);
60+
}
61+
}
62+
return path[m-1][n-1];
63+
}
64+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /