zoukankan      html  css  js  c++  java
  • 598. Range Addition II

    Problem statement:

    Given an m * n matrix M initialized with all 0's and several update operations.

    Operations are represented by a 2D array, and each operation is represented by an array with two positive integers a and b, which means M[i][j] should be added by one for all 0 <= i < a and 0 <= j < b.

    You need to count and return the number of maximum integers in the matrix after performing all the operations.

    Example 1:

    Input: 
    m = 3, n = 3
    operations = [[2,2],[3,3]]
    Output: 4
    Explanation: 
    Initially, M = 
    [[0, 0, 0],
     [0, 0, 0],
     [0, 0, 0]]
    
    After performing [2,2], M = 
    [[1, 1, 0],
     [1, 1, 0],
     [0, 0, 0]]
    
    After performing [3,3], M = 
    [[2, 2, 1],
     [2, 2, 1],
     [1, 1, 1]]
    
    So the maximum integer in M is 2, and there are four of it in M. So return 4.

    Note:

    1. The range of m and n is [1,40000].
    2. The range of a is [1,m], and the range of b is [1,n].
    3. The range of operations size won't exceed 10,000.

    Solution:

    This is the first question of leetcode weekly contest 34. Obviously, we should find the common area for all operations, which is enclosed by the min value in x/y axis. Like 221. Maximal Square.

    NOTE: we should return m * n if the operation set is empty. The initialization of x_min/y_min is m/n.

    Time complexity is O(n). n is the size of operation set.

    class Solution {
    public:
        int maxCount(int m, int n, vector<vector<int>>& ops) {
            int x_min = m;
            int y_min = n;
            for(auto op : ops){
                x_min = min(x_min, op[0]);
                y_min = min(y_min, op[1]);
            }
            return x_min * y_min;
        }
    };
  • 相关阅读:
    Ansible安装配置
    软件测试流程与测试文档
    软件测试与软件质量
    软件测试模型
    软件测试基础知识
    阮一峰ES6
    微信小程序引用外部js,引用外部样式,引用公共页面模板
    css中class后面跟两个类,这两个类用空格隔开
    动态设置WX滚动条的高度(非常重要)
    Vue入口页
  • 原文地址:https://www.cnblogs.com/wdw828/p/6917182.html
Copyright © 2011-2022 走看看