zoukankan      html  css  js  c++  java
  • 462. Minimum Moves to Equal Array Elements II

    Given a non-empty integer array, find the minimum number of moves required to make all array elements equal, where a move is incrementing a selected element by 1 or decrementing a selected element by 1. You may assume the array's length is at most 10,000.

    Example:

    Input:
    [1,2,3]
    
    Output:
    2
    
    Explanation:
    Only two moves are needed (remember each move increments or decrements one element):
    
    [1,2,3]  =>  [2,2,3]  =>  [2,2,2]

    给定一个非空的整型数组,找到使所有数组元素相等所需的最小移动次数,移动是将所选元素递增1或将选定元素递减1。您可以假设阵列的长度最多为10,000。

    例:

    输入: 
    [1,2,3] 输出: 
    2 说明: 
    只需要两个移动(记住每个移动增加或减少一个元素):
    [1,2,3] => [2,2,3] => [2 ,2,2]

    (1)思想1:首先对数组进行排序sort(),然后找到其中间值mid = nums[nums.size()/2],然后再对“其余值减去中间值”进行一个求和,便是最终的结果。

    C++:

     1 class Solution {
     2 public:
     3     int minMoves2(vector<int>& nums) {
     4         sort(nums.begin(),nums.end());
     5         int mid=nums[nums.size()/2];
     6         int result=0;
     7         for(int i=0;i<nums.size();i++)
     8             result=result+abs(nums[i]-mid);
     9         return result;
    10     }
    11 };

    python:

    1 class Solution:
    2     def minMoves2(self, nums):
    3         nums.sort()
    4         result=0
    5         mid=nums[int(len(nums)/2)]
    6         for x in nums:
    7             result=result+abs(x-mid)
    8         return result
  • 相关阅读:
    mysql乐观锁总结和实践
    linux使用文本编辑器vi常用命令
    python高级特性-sorted()
    python高级特性-filter
    Python函数式编程-map/reduce
    centos 7.3 快速安装ceph
    python高级特性-迭代器
    python高级特性-生成器
    python高级特性-列表生成
    python高级特性-迭代
  • 原文地址:https://www.cnblogs.com/sword-/p/8038227.html
Copyright © 2011-2022 走看看