美文网首页
[LeetCode]462. Minimum Moves to

[LeetCode]462. Minimum Moves to

作者: Eazow | 来源:发表于2017-05-26 20:57 被阅读122次

    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]
    
    难度

    Medium

    方法

    对数组排序,取中间的元素,然后求出每个元素和该元素的差值,将差值累加即为最终结果

    python代码
    class Solution(object):
        def minMoves2(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            nums.sort()
            moves = 0
            medium = len(nums)/2
            for i in xrange(len(nums)):
                moves += abs(nums[i]-nums[medium])
    
            return moves
    
    assert Solution().minMoves2([1,2,3]) == 2
    

    相关文章

      网友评论

          本文标题:[LeetCode]462. Minimum Moves to

          本文链接:https://www.haomeiwen.com/subject/jboxfxtx.html