【LeetCode】462. 最少移动次数使数组元素相等 II
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode】462. 最少移动次数使数组元素相等 II
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、題目描述
給定一個非空整數(shù)數(shù)組,找到使所有數(shù)組元素相等所需的最小移動數(shù),其中每次移動可將選定的一個元素加1或減1。 您可以假設數(shù)組的長度最多為10000。
二、例如
例如:
輸入: [1,2,3] 輸出: 2說明:
只有兩個動作是必要的(記得每一步僅可使其中一個元素加1或減1):
[1,2,3] => [2,2,3] => [2,2,2]
三、分析
思路:找到中位數(shù),然后計算所有數(shù)與中位數(shù)的差值之和就是答案。
四、實現(xiàn)
class Solution { public:int minMoves2(vector<int>& nums) {int n = nums.size();sort(nums.begin(), nums.end());int res=0;int tmp=nums[n / 2]; // 中位數(shù)for(int i = 0; i < n; i++){res += abs(nums[i]-tmp);}return res;} };總結(jié)
以上是生活随笔為你收集整理的【LeetCode】462. 最少移动次数使数组元素相等 II的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode】414.第三大的数
- 下一篇: 【NLP实战】Task2:特征处理