All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0501_0600.s0598_range_addition_ii.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0501_0600.s0598_range_addition_ii;

// #Easy #Array #Math #2022_08_25_Time_0_ms_(100.00%)_Space_44.3_MB_(71.22%)

/**
 * 598 - Range Addition II\.
 *
 * Easy
 *
 * You are given an `m x n` matrix `M` initialized with all `0`'s and an array of operations `ops`, where ops[i] = [ai, bi] means `M[x][y]` should be incremented by one for all 0 <= x < ai and 0 <= y < bi.
 *
 * Count and return _the number of maximum integers in the matrix after performing all the operations_.
 *
 * **Example 1:**
 *
 * ![](https://assets.leetcode.com/uploads/2020/10/02/ex1.jpg)
 *
 * **Input:** m = 3, n = 3, ops = \[\[2,2],[3,3]]
 *
 * **Output:** 4
 *
 * **Explanation:** The maximum integer in M is 2, and there are four of it in M. So return 4. 
 *
 * **Example 2:**
 *
 * **Input:** m = 3, n = 3, ops = \[\[2,2],[3,3],[3,3],[3,3],[2,2],[3,3],[3,3],[3,3],[2,2],[3,3],[3,3],[3,3]]
 *
 * **Output:** 4 
 *
 * **Example 3:**
 *
 * **Input:** m = 3, n = 3, ops = []
 *
 * **Output:** 9 
 *
 * **Constraints:**
 *
 * *   1 <= m, n <= 4 * 104
 * *   0 <= ops.length <= 104
 * *   `ops[i].length == 2`
 * *   1 <= ai <= m
 * *   1 <= bi <= n
**/
public class Solution {
    /*
     * Since the incrementing starts from zero to op[0] and op[1], we only need to find the range that
     * has the most overlaps. Thus we keep finding the minimum of both x and y.
     */
    public int maxCount(int m, int n, int[][] ops) {
        int x = m;
        int y = n;
        for (int[] op : ops) {
            x = Math.min(x, op[0]);
            y = Math.min(y, op[1]);
        }
        return x * y;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy