Length of longest subarray with increasing contiguous elements

08 Jul, 2022
Given an array arr[] of length N, the task is to find the length of the longest subarray which consists of consecutive numbers in increasing order, from the array.
Examples:
Input: arr[] = {2, 3, 4, 6, 7, 8, 9, 10}Output: 5Explanation: Subarray {6, 7, 8, 9, 10} is the longest subarray satisfying the given conditions. Therefore, the required output is 5.
Input: arr[] = {4, 5, 1, 2, 3, 4, 9, 10, 11, 12}Output: 4
Naive Approach: The simplest approach to solve the problem is to traverse the array and for every index i, traverse from over-index and find the length of the longest subarray satisfying the given condition starting from i. Shift i to the index which does not satisfy the condition and check from that index. Finally, print the maximum length of such subarray obtained.
Below is the implementation of the above approach: 
C++
Java
Python3
C#
Javascript
// C++ implementation for the above approach#include <bits/stdc++.h>using namespace std; // Function to find the longest subarray// with increasing contiguous elementsint maxiConsecutiveSubarray(int arr[], int N){     // Stores the length of    // required longest subarray    int maxi = 0;     for (int i = 0; i < N - 1; i++) {         // Stores the length of length of longest        // such subarray from ith index        int cnt = 1, j;         for (j = i; j < N; j++) {             // If consecutive elements are            // increasing and differ by 1            if (arr[j + 1] == arr[j] + 1) {                cnt++;            }             // Otherwise            else {                break;            }        }         // Update the longest subarray        // obtained so far        maxi = max(maxi, cnt);        i = j;    }     // Return the length obtained    return maxi;} // Driver Codeint main(){    int N = 11;    int arr[] = { 1, 3, 4, 2, 3, 4,                  2, 3, 5, 6, 7 };     cout << maxiConsecutiveSubarray(arr, N);    return 0;}
// Java implementation for the above approachimport java.util.*; class GFG{     // Function to find the longest subarray// with increasing contiguous elementspublic static int maxiConsecutiveSubarray(int arr[],                                          int N){         // Stores the length of    // required longest subarray    int maxi = 0;     for(int i = 0; i < N - 1; i++)    {                 // Stores the length of length of        // longest such subarray from ith        // index        int cnt = 1, j;         for(j = i; j < N - 1; j++)        {                         // If consecutive elements are            // increasing and differ by 1            if (arr[j + 1] == arr[j] + 1)            {                cnt++;            }             // Otherwise            else            {                break;            }        }         // Update the longest subarray        // obtained so far        maxi = Math.max(maxi, cnt);        i = j;    }     // Return the length obtained    return maxi;} // Driver Codepublic static void main(String args[]){    int N = 11;    int arr[] = { 1, 3, 4, 2, 3, 4,                  2, 3, 5, 6, 7 };     System.out.println(maxiConsecutiveSubarray(arr, N));}} // This code is contributed by hemanth gadarla
# Python3 implementation for# the above approach # Function to find the longest# subarray with increasing# contiguous elementsdef maxiConsecutiveSubarray(arr, N):       # Stores the length of    # required longest subarray    maxi = 0;     for i in range(N - 1):        # Stores the length of        # length of longest such        # subarray from ith index        cnt = 1;         for j in range(i, N - 1):             # If consecutive elements are            # increasing and differ by 1            if (arr[j + 1] == arr[j] + 1):                cnt += 1;             # Otherwise            else:                break;         # Update the longest subarray        # obtained so far        maxi = max(maxi, cnt);        i = j;     # Return the length obtained    return maxi; # Driver Codeif __name__ == '__main__':       N = 11;    arr = [1, 3, 4, 2, 3,           4, 2, 3, 5, 6, 7];     print(maxiConsecutiveSubarray(arr, N)); # This code is contributed by Rajput-Ji
// C# implementation for the// above approachusing System;class GFG{     // Function to find the longest// subarray with increasing// contiguous elementspublic static int maxiConsecutiveSubarray(int []arr,                                          int N){     // Stores the length of  // required longest subarray  int maxi = 0;   for(int i = 0; i < N - 1; i++)  {    // Stores the length of    // length of longest such    // subarray from ith index    int cnt = 1, j;     for(j = i; j < N - 1; j++)    {      // If consecutive elements are      // increasing and differ by 1      if (arr[j + 1] == arr[j] + 1)      {        cnt++;      }       // Otherwise      else      {        break;      }    }     // Update the longest subarray    // obtained so far    maxi = Math.Max(maxi, cnt);    i = j;  }   // Return the length  // obtained  return maxi;} // Driver Codepublic static void Main(String []args){  int N = 11;  int []arr = {1, 3, 4, 2, 3, 4,               2, 3, 5, 6, 7};  Console.WriteLine(          maxiConsecutiveSubarray(arr, N));}} // This code is contributed by 29AjayKumar
<script>// Javascript program to implement// the above approach // Function to find the longest subarray// with increasing contiguous elementsfunction maxiConsecutiveSubarray(arr, N){          // Stores the length of    // required longest subarray    let maxi = 0;      for(let i = 0; i < N - 1; i++)    {                  // Stores the length of length of        // longest such subarray from ith        // index        let cnt = 1, j;          for(j = i; j < N - 1; j++)        {                          // If consecutive elements are            // increasing and differ by 1            if (arr[j + 1] == arr[j] + 1)            {                cnt++;            }              // Otherwise            else            {                break;            }        }          // Update the longest subarray        // obtained so far        maxi = Math.max(maxi, cnt);        i = j;    }      // Return the length obtained    return maxi;}     // Driver Code         let  N = 11;    let arr = [ 1, 3, 4, 2, 3, 4,                  2, 3, 5, 6, 7 ];      document.write(maxiConsecutiveSubarray(arr, N));     </script>
3
Time Complexity: O(N2) Auxiliary Space: O(1)
hemanthswarna1506
29AjayKumar
Rajput-Ji
sinhadiptiprakash
avijitmondal1998
sakshi11101
subarray
two-pointer-algorithm
Arrays
Mathematical
Searching
two-pointer-algorithm
Arrays
Searching
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Maximum and minimum of an array using minimum number of comparisons
Top 50 Array Coding Problems for Interviews
Multidimensional Arrays in Java
Stack Data Structure (Introduction and Program)
Linear Search
Program for Fibonacci numbers
Set in C++ Standard Template Library (STL)
Write a program to print all permutations of a given string
C++ Data Types
Operators in C / C++