java.lang.Object
g1901_2000.s1937_maximum_number_of_points_with_cost.Solution

public class Solution extends Object
1937 - Maximum Number of Points with Cost.<p>Medium</p> <p>You are given an <code>m x n</code> integer matrix <code>points</code> ( <strong>0-indexed</strong> ). Starting with <code>0</code> points, you want to <strong>maximize</strong> the number of points you can get from the matrix.</p> <p>To gain points, you must pick one cell in <strong>each row</strong>. Picking the cell at coordinates <code>(r, c)</code> will <strong>add</strong> <code>points[r][c]</code> to your score.</p> <p>However, you will lose points if you pick a cell too far from the cell that you picked in the previous row. For every two adjacent rows <code>r</code> and <code>r + 1</code> (where <code>0 <= r < m - 1</code>), picking cells at coordinates <code>(r, c<sub>1</sub>)</code> and <code>(r + 1, c<sub>2</sub>)</code> will <strong>subtract</strong> <code>abs(c<sub>1</sub> - c<sub>2</sub>)</code> from your score.</p> <p>Return <em>the <strong>maximum</strong> number of points you can achieve</em>.</p> <p><code>abs(x)</code> is defined as:</p> <ul> <li><code>x</code> for <code>x >= 0</code>.</li> <li><code>-x</code> for <code>x < 0</code>.</li> </ul> <p><strong>Example 1:</strong></p> <p><img src="https://assets.leetcode.com/uploads/2021/07/12/screenshot-2021-07-12-at-13-40-26-diagram-drawio-diagrams-net.png" alt="" /></p> <p><strong>Input:</strong> points = [[1,2,3],[1,5,1],[3,1,1]]</p> <p><strong>Output:</strong> 9</p> <p><strong>Explanation:</strong></p> <p>The blue cells denote the optimal cells to pick, which have coordinates (0, 2), (1, 1), and (2, 0).</p> <p>You add 3 + 5 + 3 = 11 to your score.</p> <p>However, you must subtract abs(2 - 1) + abs(1 - 0) = 2 from your score.</p> <p>Your final score is 11 - 2 = 9.</p> <p><strong>Example 2:</strong></p> <p><img src="https://assets.leetcode.com/uploads/2021/07/12/screenshot-2021-07-12-at-13-42-14-diagram-drawio-diagrams-net.png" alt="" /></p> <p><strong>Input:</strong> points = [[1,5],[2,3],[4,2]]</p> <p><strong>Output:</strong> 11</p> <p><strong>Explanation:</strong></p> <p>The blue cells denote the optimal cells to pick, which have coordinates (0, 1), (1, 1), and (2, 0).</p> <p>You add 5 + 3 + 4 = 12 to your score.</p> <p>However, you must subtract abs(1 - 1) + abs(1 - 0) = 1 from your score.</p> <p>Your final score is 12 - 1 = 11.</p> <p><strong>Constraints:</strong></p> <ul> <li><code>m == points.length</code></li> <li><code>n == points[r].length</code></li> <li><code>1 <= m, n <= 10<sup>5</sup></code></li> <li><code>1 <= m * n <= 10<sup>5</sup></code></li> <li><code>0 <= points[r][c] <= 10<sup>5</sup></code></li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • maxPoints

      public long maxPoints(int[][] points)