LeetCode中等题之最少移动次数使数组元素相等 II

news/2024/11/25 5:00:42/

题目

给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。

在一步操作中,你可以使数组中的一个元素加 1 或者减 1 。

示例 1:

输入:nums = [1,2,3]
输出:2
解释:
只需要两步操作(每步操作指南使一个元素加 1 或减 1):
[1,2,3] => [2,2,3] => [2,2,2]

示例 2:

输入:nums = [1,10,2,9]
输出:16
提示:
n == nums.length
1 <= nums.length <= 10^5
-10^9 <= nums[i] <= 10 ^9
来源:力扣(LeetCode)

解题思路

  这个题的基本思路就是先找到数组的中位数,然后所有的元素向中位数对其,各个元素跟中位数进行对比;比中位数大的就将其做减少操作,使其和中位数相等,同样小于中位数的元素则做增加操作。

class Solution:def minMoves2(self, nums: List[int]) -> int:nums.sort()mid,s=nums[len(nums)>>1],0for i in nums:s+=abs(mid-i)return s

在这里插入图片描述


http://www.ppmy.cn/news/605333.html

相关文章

数据结构--单链表的定义

数据结构–单链表的定义 本节的学习目标&#xff1a; 单链表的定义&#xff08;如何用代码实现&#xff09; 优点:不要求大片连续空间&#xff0c;改变容量方便 缺点:不可随机存取&#xff0c;要耗费一定空间存放指针 代码实现 struct LNode {ElemType data; //数据域stru…

LeetCode简单题之无法吃午餐的学生数量

题目 学校的自助午餐提供圆形和方形的三明治&#xff0c;分别用数字 0 和 1 表示。所有学生站在一个队列里&#xff0c;每个学生要么喜欢圆形的要么喜欢方形的。 餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个 栈 里&#xff0c;每一轮&#xff1a; 如果队列最前…

LeetCode中等题之寻找右区间

题目 给你一个区间数组 intervals &#xff0c;其中 intervals[i] [starti, endi] &#xff0c;且每个 starti 都 不同 。 区间 i 的 右侧区间 可以记作区间 j &#xff0c;并满足 startj > endi &#xff0c;且 startj 最小化 。 返回一个由每个区间 i 的 右侧区间 的最…

Problem I Rank LED题解 - 2018年第一届GXCPC广西大学生程序设计大赛 正式赛

Problem I Rank LED题解 题目大意 ‘0’到‘9’的数字亮线依次为{6、2、5、5、4、5、6、3、7、6}。 Luras想修改每条光线的位置&#xff0c;使她的新等级尽可能小&#xff0c;同时新等级也是一个不带任何前导零的正整数。 另外&#xff0c;光线总数应与开始时相同。 官方题…

内积和外积的物理意义-数学

内积和外积的物理意义Persistently关注2018.07.31 14:28:46字数 277阅读 6,276向量的内积 abab cos(θ) 向量a和b的长度之积再乘以它们之间的夹角的余弦&#xff1b;向量内积的几何解释就是一个向量在另一个向量上的投影的积&#xff0c;也就是同方向的积特别的。如果一个向量如…

LeetCode简单题之拿硬币

题目 桌上有 n 堆力扣币&#xff0c;每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆&#xff0c;拿走其中的一枚或者两枚&#xff0c;求拿完所有力扣币的最少次数。 示例 1&#xff1a; 输入&#xff1a;[4,2,1] 输出&#xff1a;4 解释&#xff1a;第一堆力扣…

使用余弦相似度算法计算文本相似度-数学

20211201 也就是效果 皮尔逊>余弦>欧式 余弦相似度的局限 皮尔逊的优势&#xff0c;相当于是改进版余弦相似度 欧式与 余弦 欧式侧重于直线距离 归一化之后的欧式和余弦的效果也不同 比如 0,1 和 1,0 tfidf用余弦相似度就足够,因为对在不同文档中相同的词的打分是一视…