Open In App

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: 
 

  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 
 

 



Approach: The following conditions must satisfy 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++ 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 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 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# 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




<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

 

Time Complexity: O(1)

Auxiliary Space: O(1)


Article Tags :