魔法师 (@Constanline)Leetcode每日一题 —— 2033. 获取单值网格的最小操作数 中发帖

思路 

位置顺序无关,所以可以转换为一维数组排序解答。 
排序后结果可用这个表达式表示: 
(m-x[1])+(m-x[2])+……+(x[s-2]-m)+(x[s-1]-m)
选择中位数可以使以上表达式的值最小,而且选择数组中没有的数并不会让结果更优。

代码 
class Solution {
    public int minOperations(int[][] grid, int x) {
        int m = grid.length;
        int n = grid[0].length;
        int[] nums = new int[m * n];
        // 公共的余数
        int mod = grid[0][0] % x;
        // 将二维数组转为一维数组,方便偏序
        for (int i...
 
 
Back to Top