Description

Submission
class Solution {
int dp[201][201];
public:
int minFallingPathSum(vector<vector<int>>& arr) {
int n = arr.size();
for(int i = 0; i < n; ++i) {
dp[0][i] = arr[0][i];
}
for(int i = 1; i < n; ++i) {
for(int j = 0; j < n; ++j) {
int m = INT_MAX;
for(int k = 0; k < n; ++k) {
if(k == j) continue;
m = min(m, dp[i-1][k]);
}
dp[i][j] = m + arr[i][j];
}
}
int ret = INT_MAX;
for(int i = 0; i < n; ++i) {
ret = min(dp[n-1][i], ret);
}
return ret;
}
};
