Related Articles
Check if an array is increasing or decreasing
• Last Updated : 13 Sep, 2019

Given an array arr[] of N elements where N ≥ 2, the task is to check the type of array whether it is:

1. Increasing.
2. Decreasing.
3. Increasing then decreasing.
4. Decreasing then increasing.

Note that the given array is definitely one of the given types.

Examples:

Input: arr[] = {1, 2, 3, 4, 5}
Output: Increasing

Input: arr[] = {1, 2, 4, 3}
Output: Increasing then decreasing

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: The following conditions must satitisfy for:

1. Increasing array: The first two and the last two elements must be in increasing order.
2. Decreasing array: The first two and the last two elements must be in decreasing order.
3. Increasing then decreasing array: The first two elements must be in increasing order and the last two elements must be in decreasing order.
4. Decreasing then increasing array: The first two elements must be in decreasing order and the last two elements must be in increasing order.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;`` ` `// Function to check the type of the array``void` `checkType(``int` `arr[], ``int` `n)``{`` ` `    ``// If the first two and the last two elements``    ``// of the array are in increasing order``    ``if` `(arr[0] <= arr[1] && arr[n - 2] <= arr[n - 1])``        ``cout << ``"Increasing"``;`` ` `    ``// If the first two and the last two elements``    ``// of the array are in decreasing order``    ``else` `if` `(arr[0] >= arr[1] && arr[n - 2] >= arr[n - 1])``        ``cout << ``"Decreasing"``;`` ` `    ``// If the first two elements of the array are in``    ``// increasing order and the last two elements``    ``// of the array are in decreasing order``    ``else` `if` `(arr[0] <= arr[1] && arr[n - 2] >= arr[n - 1])``        ``cout << ``"Increasing then decreasing"``;`` ` `    ``// If the first two elements of the array are in``    ``// decreasing order and the last two elements``    ``// of the array are in increasing order``    ``else``        ``cout << ``"Decreasing then increasing"``;``}`` ` `// Driver code``int` `main()``{``    ``int` `arr[] = { 1, 2, 3, 4 };``    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr[0]);`` ` `    ``checkType(arr, n);`` ` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach ``import` `java.math.*;`` ` `class` `GFG``{`` ` `    ``// Function to check the type of the array ``    ``public` `static` `void` `checkType(``int` `arr[], ``int` `n) ``    ``{ ``     ` `        ``// If the first two and the last two elements ``        ``// of the array are in increasing order ``        ``if` `(arr[``0``] <= arr[``1``] && ``            ``arr[n - ``2``] <= arr[n - ``1``]) ``            ``System.out.println(``"Increasing"``); ``     ` `        ``// If the first two and the last two elements ``        ``// of the array are in decreasing order ``        ``else` `if` `(arr[``0``] >= arr[``1``] && ``                 ``arr[n - ``2``] >= arr[n - ``1``]) ``            ``System.out.println(``"Decreasing"``); ``     ` `        ``// If the first two elements of the array are in ``        ``// increasing order and the last two elements ``        ``// of the array are in decreasing order ``        ``else` `if` `(arr[``0``] <= arr[``1``] &&``                 ``arr[n - ``2``] >= arr[n - ``1``]) ``            ``System.out.println(``"Increasing then decreasing"``); `` ` `        ``// If the first two elements of the array are in ``        ``// decreasing order and the last two elements ``        ``// of the array are in increasing order ``        ``else``            ``System.out.println(``"Decreasing then increasing"``);``    ``}``         ` ` ` `    ``// Driver code ``    ``public` `static` `void` `main(String[] args) ``    ``{ ``        ``int``[] arr = ``new` `int``[]{ ``1``, ``2``, ``3``, ``4` `};``         ` `        ``int` `n = arr.length;`` ` `        ``checkType(arr, n); ``    ``}``}`` ` `// This code is contributed by Naman_Garg`

## Python3

 `# Python3 implementation of the approach `` ` `# Function to check the type of the array ``def` `checkType(arr, n): `` ` `    ``# If the first two and the last two elements ``    ``# of the array are in increasing order ``    ``if` `(arr[``0``] <``=` `arr[``1``] ``and` `        ``arr[n ``-` `2``] <``=` `arr[n ``-` `1``]) :``        ``print``(``"Increasing"``); `` ` `    ``# If the first two and the last two elements ``    ``# of the array are in decreasing order ``    ``elif` `(arr[``0``] >``=` `arr[``1``] ``and` `          ``arr[n ``-` `2``] >``=` `arr[n ``-` `1``]) :``        ``print``(``"Decreasing"``); `` ` `    ``# If the first two elements of the array are in ``    ``# increasing order and the last two elements ``    ``# of the array are in decreasing order ``    ``elif` `(arr[``0``] <``=` `arr[``1``] ``and` `          ``arr[n ``-` `2``] >``=` `arr[n ``-` `1``]) : ``        ``print``(``"Increasing then decreasing"``); `` ` `    ``# If the first two elements of the array are in ``    ``# decreasing order and the last two elements ``    ``# of the array are in increasing order ``    ``else` `:``        ``print``(``"Decreasing then increasing"``); `` ` `# Driver code ``if` `__name__ ``=``=` `"__main__"` `: `` ` `    ``arr ``=` `[ ``1``, ``2``, ``3``, ``4` `]; ``    ``n ``=` `len``(arr); `` ` `    ``checkType(arr, n); `` ` `# This code is contributed by AnkitRai01`

## C#

 `// C# implementation of the approach ``using` `System;``class` `GFG``{``     ` `    ``// Function to check the type of the array ``    ``public` `static` `void` `checkType(``int` `[]arr, ``int` `n) ``    ``{ ``     ` `        ``// If the first two and the last two elements ``        ``// of the array are in increasing order ``        ``if` `(arr[0] <= arr[1] && ``            ``arr[n - 2] <= arr[n - 1]) ``            ``Console.Write(``"Increasing"``); ``     ` `        ``// If the first two and the last two elements ``        ``// of the array are in decreasing order ``        ``else` `if` `(arr[0] >= arr[1] && ``                 ``arr[n - 2] >= arr[n - 1]) ``            ``Console.Write(``"Decreasing"``); ``     ` `        ``// If the first two elements of the array are in ``        ``// increasing order and the last two elements ``        ``// of the array are in decreasing order ``        ``else` `if` `(arr[0] <= arr[1] &&``                 ``arr[n - 2] >= arr[n - 1]) ``            ``Console.Write(``"Increasing then decreasing"``); `` ` `        ``// If the first two elements of the array are in ``        ``// decreasing order and the last two elements ``        ``// of the array are in increasing order ``        ``else``            ``Console.Write(``"Decreasing then increasing"``);``    ``}`` ` `    ``// Driver code ``    ``static` `public` `void` `Main ()``    ``{``        ``int``[] arr = ``new` `int``[]{ 1, 2, 3, 4 };``         ` `        ``int` `n = arr.Length;`` ` `        ``checkType(arr, n); ``    ``}``}`` ` `// This code is contributed by ajit`
Output:
```Increasing
```

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up