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