old_contents: # 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]
  
  class Solution(object):
      def minMoves2(self, nums):
          """
          :type nums: List[int]
          :rtype: int
          """
          #wmd_val = sorted(nums)[len(nums)/2]
          from numpy import median
          md_val = median(nums)
          return sum(map(lambda x: abs(x - md_val), nums))
  
  
new_contents: # 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]
  
  class Solution(object):
      def minMoves2(self, nums):
          """
          :type nums: List[int]
          :rtype: int
          """
          #wmd_val = sorted(nums)[len(nums)/2]
          from numpy import median
          md_val = median(nums)
          #return sum(map(lambda x: abs(x - md_val), nums))
          return sum(abs(num - md_val) for num in nums)
  
  
subject: update 462