text: // https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/
  
  // Given an integer array nums of size n, return the minimum number of moves
  // required to make all array elements equal.
  
  // In one move, you can increment or decrement an element of the array by 1.
  
  // Test cases are designed so that the answer will fit in a 32-bit integer.
  
  ////////////////////////////////////////////////////////////////////////////////
  
  // move towards some middle num -> sort -> balance out min and max
  class Solution {
  public:
      int minMoves2(vector<int>& nums) {
          sort(nums.begin(), nums.end());
          int i = 0, j = nums.size() - 1, ans = 0;
          while (i < j) {
              ans += nums[j--] - nums[i++];
          }
          return ans;
      }
  };
  