leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

1937.cpp (835B)


0 class Solution {
1 public:
2 long long maxPoints(vector<vector<int>> &points) const {
3 const int n = size(points), m = size(points[0]);
4 static long long crnt[100001], left[100001], right[100001];
6 for (int j = 0; j < m; j++)
7 crnt[j] = points[0][j];
8 for (int i = 1; i < n; i++) {
10 left[0] = crnt[0];
11 for (int j = 1; j < m; j++) {
12 left[j] = max(left[j - 1], crnt[j] + j);
13 }
15 right[m - 1] = crnt[m - 1] - (m - 1);
16 for (int j = m - 2; j >= 0; j--) {
17 right[j] = max(right[j + 1], crnt[j] - j);
18 }
20 for (int j = 0; j < m; j++) {
21 crnt[j] = points[i][j] + max(left[j] - j, right[j] + j);
22 }
23 }
25 return *max_element(crnt, crnt + m);
26 }
27 };