# Check if an array is increasing or decreasing

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

- Increasing.
- Decreasing.
- Increasing then decreasing.
- Decreasing then increasing.

**Note** that the given array is definitely one of the given types.**Examples:**

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

**Approach:** The following conditions must satisfy for:

**Increasing array:**The first two and the last two elements must be in increasing order.**Decreasing array:**The first two and the last two elements must be in decreasing order.**Increasing then decreasing array:**The first two elements must be in increasing order and the last two elements must be in decreasing order.**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 <bits/stdc++.h>` `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` |

## Javascript

`<script>` `// Javascript implementation of the approach` `// Function to check the type of the array` `function` `checkType(arr, 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])` ` ` `document.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])` ` ` `document.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])` ` ` `document.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` ` ` `document.write(` `"Decreasing then increasing"` `);` `}` `// Driver code` ` ` `let arr = [ 1, 2, 3, 4 ];` ` ` `let n = arr.length;` ` ` `checkType(arr, n);` `</script>` |

**Output:**

Increasing

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.