Accepted Code

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
class Solution {
public:
int minFallingPathSum(vector<vector<int>>& matrix) {
int n = matrix.size();

for(int i=1;i<n;i++) {
for(int j=0;j<n;j++) {
if(j==0) {
matrix[i][j]+=min(matrix[i-1][j],matrix[i-1][j+1]);
} else if(j==n-1) {
matrix[i][j]+=min(matrix[i-1][j-1],matrix[i-1][j]);
} else {
matrix[i][j]+=min(min(matrix[i-1][j-1],matrix[i-1][j]),matrix[i-1][j+1]);
}
}
}

int ans=matrix[n-1][0];
for(int i=1;i<n;i++) {
if(matrix[n-1][i]<ans) {
ans=matrix[n-1][i];
}
}
return ans;
}
};