• LeetCode


    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.

    模拟会空间复杂度会超,必须直接计算。计算重叠部分。
    class Solution {
        public int maxCount(int m, int n, int[][] ops) {
            if (ops == null || ops.length <=0 || ops[0].length <= 0)
                return m*n;
            int minX = Integer.MAX_VALUE, minY = Integer.MAX_VALUE;
            for (int i=0; i<ops.length; i++) {
                int p = ops[i][0], q = ops[i][1];
                if (minX > p)
                    minX = p;
                if (minY > q)
                    minY = q;
            }
            return minX * minY;
        }
    }
  • 相关阅读:
    Linux Shell脚本编程--Head/Tail命令详解
    Python学习笔记-抽象
    L2-020 功夫传人
    pat 抢红包
    pat 集合相似度
    pat 喊山
    hdu1029
    win10 , JAVA安装 环境搭建
    ZOJ2540 Form a Square
    ZOJ3180 Number Game
  • 原文地址:https://www.cnblogs.com/wxisme/p/7462482.html
Copyright © 2020-2023  润新知