魔法师 (@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...