问题:
An array is monotonic if it is either monotone increasing or monotone decreasing.
An array nums is monotone increasing if for all i <= j, nums[i] <= nums[j]. An array nums is monotone decreasing if for all i <= j, nums[i] >= nums[j].
Given an integer array nums, return true if the given array is monotonic, or false otherwise.
解答:
单调数组,当数组个数大于2时, 遍历数组, 通过比较当当前值与前一个值的,确定其是递增还是递减, 遍历过程中,如果有变化那么则不满足单调性。
def isMonotonic(array):
if len(array) <= 2:
return True
direction = array[1] - array[0]
for i in range(2, len(array)):
if direction == 0:
direction = array[i] - array[i-1]
continue
if breakDirection(direction , array[i], array[i-1]):
return False;
return True;
def breakDirection (direction, val, preval):
diff = val - preval
if direction > 0:
return diff < 0
else:
return diff > 0
def isMonotonic(array):
isNoDecreasing = True
isNoCreasing = True
for i in range(1, len(array)):
diff = array[i] - array[i-1]
if diff > 0:
isNoCreasing = False;
else:
isNoDecreasing = False;
return isNoCreasing or isNoDecreasing
参考及引用
https://www.algoexpert.io/questions/monotonic-array
图片from康文獻


Comments are closed.