classSolution { publicint[][] imageSmoother(int[][] img) { intm= img.length, n = img[0].length; int[][] ret = newint[m][n]; for (inti=0; i < m; i++) { for (intj=0; j < n; j++) { intnum=0, sum = 0; for (intx= i - 1; x <= i + 1; x++) { for (inty= j - 1; y <= j + 1; y++) { if (x >= 0 && x < m && y >= 0 && y < n) { num++; sum += img[x][y]; } } } ret[i][j] = sum / num; } } return ret; } }
给你一个 m x n 的矩阵 M ,初始化时所有的 0 和一个操作数组 op ,其中 ops[i] = [ai, bi] 意味着当所有的 0 <= x < ai 和 0 <= y < bi 时, M[x][y] 应该加 1。 在 执行完所有操作后 ,计算并返回 矩阵中最大整数的个数 。
示例 1:
输入: m = 3, n = 3,ops = [[2,2],[3,3]] 输出: 4 解释: M 中最大的整数是 2, 而且 M 中有4个值为2的元素。因此返回 4。
思路:无:
1 2 3 4 5 6 7 8 9 10
classSolution { publicintmaxCount(int m, int n, int[][] ops) { intmina= m, minb = n; for (int[] op : ops) { mina = Math.min(mina, op[0]); minb = Math.min(minb, op[1]); } return mina * minb; } }
给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 ‘X’ 或者是一个空位 ‘.’ ,返回在甲板 board 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k(1 行,k 列)或 k x 1(k 行,1 列)的形状建造,其中 k 可以是任意大小。两艘战舰之间至少有一个水平或垂直的空位分隔 (即没有相邻的战舰)。