中位数贪心
1. [1,10,2,9] ,在一次操作中你可以使数组中的一个元素+1或-1,返回使所有数组元素相等需要的最小操作数 // 目标数为数组中位数 |
462. 最小操作次数使数组元素相等 II
给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最小操作数。
在一次操作中,你可以使数组中的一个元素加 1 或者减 1 。
示例 1:
输入:nums = [1,2,3] |
示例 2:
输入:nums = [1,10,2,9] |
提示:
n == nums.length1 <= nums.length <= 105-109 <= nums[i] <= 109
C++
// nth_element(数组名,数组名+第k小元素,数组名+元素个数) 可以在给定区间内部排序,使得指定元素处于指定位置 |
2033. 获取单值网格的最小操作数
给你一个大小为 m x n 的二维整数网格 grid 和一个整数 x 。每一次操作,你可以对 grid 中的任一元素 加 x 或 减 x 。
单值网格 是全部元素都相等的网格。
返回使网格化为单值网格所需的 最小 操作数。如果不能,返回 -1 。
示例 1:

输入:grid = [[2,4],[6,8]], x = 2 |
示例 2:

输入:grid = [[1,5],[2,3]], x = 1 |
示例 3:

输入:grid = [[1,2],[3,4]], x = 2 |
提示:
m == grid.lengthn == grid[i].length1 <= m, n <= 1051 <= m * n <= 1051 <= x, grid[i][j] <= 104
C++

class Solution { |