# 2033. Minimum Operations to Make a Uni-Value Grid
###### tags: `Leetcode` `Medium` `Math`
Link: https://leetcode.com/problems/minimum-operations-to-make-a-uni-value-grid/
## 思路
首先找中位数,如果每个数和中位数的差都能被x整除,就可以变成unique number
Proof can be found [here](https://leetcode.com/problems/minimum-operations-to-make-a-uni-value-grid/discuss/1513518/Prove-the-median-answer).
## Code
```java=
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 idx = 0;
for(int i = 0;i < m;i++){
for(int j = 0;j < n;j++){
nums[idx++] = grid[i][j];
}
}
Arrays.sort(nums);
int ans = 0;
for(int i = 0;i < nums.length;i++){
if((nums[i]-nums[nums.length/2])%x==0){
ans += Math.abs((nums[i]-nums[nums.length/2])/x);
}
else{
return -1;
}
}
return ans;
}
}
```