zoukankan      html  css  js  c++  java
  • [leetcode-598-Range Addition II]

    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:
    The range of m and n is [1,40000].
    The range of a is [1,m], and the range of b is [1,n].
    The range of operations size won't exceed 10,000.

    思路:

    思考可以发现,矩阵越靠近左上角的元素值越大,因为要加1的元素 行和列索引是从0开始的。

    那么只需要找到操作次数最多的元素位置即可。而操作次数最多的元素肯定是偏向于靠近矩阵左上角的。

    int maxCount(int m, int n, vector<vector<int> >& ops) 
    {
            int minrow = 50000,mincol =50000;
        for(int i =0;i<ops.size();i++)
        {
          minrow =min(minrow,ops[i][0]);
          mincol = min(mincol,ops[i][1]);
        }
        minrow = min(minrow,m);
        mincol = min(mincol,n);
        return minrow*mincol;
    }
  • 相关阅读:
    城市的划入划出效果
    文本溢出省略解决笔记css
    长串英文数字强制折行解决办法css
    Poj 2352 Star
    树状数组(Binary Indexed Trees,二分索引树)
    二叉树的层次遍历
    Uva 107 The Cat in the Hat
    Uva 10336 Rank the Languages
    Uva 536 Tree Recovery
    Uva10701 Pre, in and post
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6915320.html
Copyright © 2011-2022 走看看