1. 程式人生 > >896. Monotonic Array

896. Monotonic Array

it is ray note and 記錄 class tput 解答 style

【題目】

An array is monotonic if it is either monotone increasing or monotone decreasing.

An array A is monotone increasing if for all i <= j, A[i] <= A[j]. An array A is monotone decreasing if for all i <= j, A[i] >= A[j].

Return true if and only if the given array A is monotonic.

Example 1:

Input: [1,2,2,3]
Output: true

Example 2:

Input: [6,5,4,4]
Output: true

Example 3:

Input: [1,3,2]
Output: false

Example 4:

Input: [1,2,4,5]
Output: true

Example 5:

Input: [1,1,1]
Output: true

Note:

  1. 1 <= A.length <= 50000
  2. -100000 <= A[i] <= 100000

【題意】

判斷是否是單調數組。

【解答】

用兩個bool變量分別記錄是否出現neg差值和pos差值,單調數組的話,兩個不可能同時為true。

時間O(N) 空間O(1)

class Solution {
public:
    bool isMonotonic(vector<int>& A) {
        int len = A.size();
        bool isNeg = false;
        bool isPos = false;
        for(int i=0; i+1<len; i++){
            int diff = A[i+1] - A[i];
            if(diff < 0){
                isNeg 
= true; if(isPos) return false; } if(diff > 0){ isPos = true; if(isNeg) return false; } } return true; } };

896. Monotonic Array