Hi, here's your problem today. This problem was recently asked by Microsoft: You are given an array of integers in an arbitrary order. Return whether or not it is possible to make the array non-decreasing by modifying at most 1 element to any value. We define an array is non-decreasing if array[i] <= array[i + 1] holds for every i (1 <= i < n). Example: [13, 4, 7] should return true, since we can modify 13 to any value 4 or less, to make it non-decreasing. [13, 4, 1] however, should return false, since there is no way to modify just one element to make the array non-decreasing. Here is the function signature:
def check(lst):
  # Fill this in.

print check([13, 4, 7])
# True
print check([5,1,3,2,5])
# False
Can you find a solution in O(n) time?