> For the complete documentation index, see [llms.txt](https://leetcode.realtemirov.uz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://leetcode.realtemirov.uz/problems/896.-monotonic-array.md).

# 896. Monotonic Array

🟩 Easy

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 <= 10^5`
* `-10^5 <= nums[i] <= 10^5`

## Solution

My Solution

```go
func isMonotonic(nums []int) bool {
    if len(nums) < 2 {
        return true
    }

    m := 0

    for i:=1; i<len(nums); i++ {
        if nums[i] > nums[i-1] {
            if m == 0 {
                m = 1
            } else if m == -1 {
                return false
            }
        } else if nums[i] < nums[i-1] {
            if m == 0 {
                m = -1
            } else if m == 1 {
                return false
            }
        }
    }

    return true
}
```

Optimal Solution

```go
func isMonotonic(nums []int) bool {
    isIncreasing, isDecreasing := true, true
    for i := 0; i < len(nums)-1; i++ {
        if nums[i] > nums[i+1] {
            isIncreasing = false
        }
        if nums[i] < nums[i+1] {
            isDecreasing = false
        }
        if !isIncreasing && !isDecreasing {
            return false
        }
    }
    return true
}
```

![result](https://600345290-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrSK2xH3txU3tYyDsT8mQ%2Fuploads%2Fgit-blob-6e7ebdd61c72b42bc12a078485faea144da2737d%2F896.png?alt=media)

Leetcode: [link](https://leetcode.com/problems/monotonic-array/description)
