-
Notifications
You must be signed in to change notification settings - Fork 476
Expand file tree
/
Copy path1289.cpp
More file actions
26 lines (25 loc) · 740 Bytes
/
1289.cpp
File metadata and controls
26 lines (25 loc) · 740 Bytes
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>>& A)
{
int r = A.size(), c = A[0].size();
for (int i = r - 1; i > 0; i--)
{
int m1[2] = {INT_MAX, 0}, m2[2] = {INT_MAX, 0};
for (int k = 0; k < c; k++)
{
if (A[i][k] < m1[0])
{
memcpy(m2, m1, sizeof m1);
m1[0] = A[i][k], m1[1] = k;
} else if (A[i][k] < m2[0]) m2[0] = A[i][k], m2[1] = k;
}
for (int j = 0; j < c; j++)
{
A[i-1][j] += (j != m1[1] ? m1[0] : m2[0]);
}
}
return *min_element(A[0].begin(), A[0].end());
}
};