中位数贪心
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.length
1 <= 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.length
n == grid[i].length
1 <= m, n <= 105
1 <= m * n <= 105
1 <= x, grid[i][j] <= 104
C++
class Solution { |