diff --git a/0896_monotonic-array/README.md b/0896_monotonic-array/README.md new file mode 100644 index 0000000..cf073ca --- /dev/null +++ b/0896_monotonic-array/README.md @@ -0,0 +1,22 @@ +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_. + +Example 1: + + Input: nums = [1,2,2,3] Output: true + +Example 2: + + Input: nums = [6,5,4,4] Output: true + +Example 3: + + Input: nums = [1,3,2] Output: false + +Constraints: + +* `1 <= nums.length <= 105` +* `-105 <= nums[i] <= 105` diff --git a/0896_monotonic-array/python3/solution.py b/0896_monotonic-array/python3/solution.py new file mode 100644 index 0000000..2866d25 --- /dev/null +++ b/0896_monotonic-array/python3/solution.py @@ -0,0 +1,16 @@ +class Solution: + def isMonotonic(self, nums: List[int]) -> bool: + direction = 0 + prev = nums[0] + + for num in nums[1:]: + newDirection = num - prev + + if direction == 0: + direction = newDirection + elif direction < 0 < newDirection or direction > 0 > newDirection: + return False + + prev = num + + return True