2023-09-29 Daily Challenge

Today I have done leetcode's September LeetCoding Challenge with cpp.

September LeetCoding Challenge 29

Description

Monotonic Array

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

Solution

class Solution {
public:
  bool isMonotonic(vector<int>& A) {
    int len = A.size();
    if(len < 2) return true;
    int pos = 1;
    while(pos < len && A[pos] == A[pos-1]) pos += 1;
    if(pos == len) return true;
    if(A[pos] > A[pos-1]) {
      while(pos < len && A[pos] >= A[pos-1]) pos += 1;
      return pos==len;
    }
    while(pos < len && A[pos] <= A[pos-1]) pos += 1;
    return pos==len;
  }
};

// Accepted
// 371/371 cases passed (120 ms)
// Your runtime beats 67.15 % of cpp submissions
// Your memory usage beats 29.47 % of cpp submissions (96.7 MB)