new_contents: # Time:  O(logn + k)
  # Space: O(1)
  
  # Given a sorted array, two integers k and x, find the k closest elements to x in the array.
  # The result should also be sorted in ascending order.
  # If there is a tie, the smaller elements are always preferred.
  #
  # Example 1:
  # Input: [1,2,3,4,5], k=4, x=3
  # Output: [1,2,3,4]
  # Example 2:
  # Input: [1,2,3,4,5], k=4, x=-1
  # Output: [1,2,3,4]
  # Note:
  # The value k is positive and will always be smaller than the length of the sorted array.
  # Length of the given array is positive and will not exceed 10^4
  # Absolute value of elements in the array and x will not exceed 10^4
  
  class Solution(object):
      def findClosestElements(self, arr, k, x):
          """
          :type arr: List[int]
          :type k: int
          :type x: int
          :rtype: List[int]
          """
          i = bisect.bisect_left(arr, x)
          left, right = i-1, i
          while k:
              if right >= len(arr) or \
                 (left >= 0 and abs(arr[left]-x) <= abs(arr[right]-x)):
                  left -= 1
              else:
                  right += 1
              k -= 1
          return arr[left+1:right]
  
subject: Create find-k-closest-elements.py