leetcode[Range Addition II]

来源:互联网 发布:耐高温密封条 淘宝 编辑:程序博客网 时间:2024/06/05 10:04

解法一:

class Solution {    /*public int maxCount(int m, int n, int[][] ops) {        int[][] matrix = new int[m][n];        int max = 0;        for(int i = 0; i < ops.length; i++){        int a = ops[i][0];        int b = ops[i][1];        //System.out.println("a:" + a + "  b:" + b);        for(int j = 0; j < m && j < a; j++){        for(int k = 0; k < n && k < b; k++){        //System.out.println("i:" + i + "  j:" + j + "  k:" + k);        matrix[j][k]++;        max = Math.max(max, matrix[j][k]);        }        }        }        //统计有多少个max        int count = 0;        for(int i = 0; i < m; i++){        for(int j = 0; j < n; j++){                        //System.out.print(matrix[i][j] + " ");        if(matrix[i][j] == max){        count++;        }        }            //System.out.println();        }                return count;    }*///不能向上面那样一直去遍历矩阵,数量过大时会造成超时//operations = [[2,2],[3,3]],归根到底改变的还是某一行,某一列,最大的元素肯定是每次都被操作到了的//比如第一行第一列的元素,肯定每次都被操作到了,所以只要求ops中行和列的交集public int maxCount(int m, int n, int[][] ops) {int row = m;int col = n;for(int i = 0; i < ops.length; i++){row = Math.min(row, ops[i][0]);col = Math.min(col, ops[i][1]);}return row*col;}}


原创粉丝点击