zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    js,js中使用正则表达式
    web开发中文件下载
    EL表达式
    Servlet Filter
    压缩文件 乱码问题(转载)
    MFC CopyDirectory
    SaveFileDialog
    Create Window
    CDateTimeCtrl 设置时间
    键值表
  • 原文地址:https://www.cnblogs.com/wxisme/p/7462482.html
Copyright © 2011-2022 走看看