Print all maximal increasing contiguous sub-array in an array
Given an array arr[], the task is to find all the maximal contiguous increasing subarray in a given array.
Examples:
Input:
arr[] = { 80, 50, 60, 70, 40, 50, 80, 70 }
Output:
80
50 60 70
40 50 80
70
Input:
arr[] = { 10, 20, 23, 12, 5, 4, 61, 67, 87, 9 }
Output:
10 20 23
12
5
4 61 67 87
9
Approach: Iterate over the array and compare every element with its next neighboring element such that, if it is less than the next element, print it, else print it individually on the next line.
Below is the implementation of the above approach.
C++
#include <bits/stdc++.h>
using namespace std;
void printmaxSubseq( int arr[], int n)
{
int i;
for (i = 0; i < n; i++) {
if (arr[i] < arr[i + 1])
cout << arr[i] << " " ;
else
cout << arr[i] << "\n" ;
}
}
int main()
{
int arr[] = { 9, 8, 11, 13, 10, 15, 14, 16, 20, 5 };
int n = sizeof (arr) / sizeof (arr[0]);
printmaxSubseq(arr, n);
return 0;
}
|
Java
import java.util.*;
class GFG
{
static void printmaxSubseq( int arr[], int n)
{
int i;
for (i = 0 ; i < n ; i++)
{
if (i + 1 < n && arr[i] < arr[i + 1 ])
System.out.print(arr[i] + " " );
else
System.out.print(arr[i] + "\n" );
}
}
public static void main(String[] args)
{
int arr[] = { 9 , 8 , 11 , 13 , 10 , 15 , 14 , 16 , 20 , 5 };
int n = arr.length;
printmaxSubseq(arr, n);
}
}
|
Python3
def printmaxSubseq(arr, n) :
for i in range (n - 1 ) :
if (arr[i] < arr[i + 1 ]) :
print (arr[i], end = " " );
else :
print (arr[i]);
print (arr[n - 1 ]);
if __name__ = = "__main__" :
arr = [ 9 , 8 , 11 , 13 , 10 , 15 , 14 , 16 , 20 , 5 ];
n = len (arr);
printmaxSubseq(arr, n);
|
C#
using System;
class GFG
{
static void printmaxSubseq( int []arr, int n)
{
int i;
for (i = 0; i < n ; i++)
{
if (i + 1 < n && arr[i] < arr[i + 1])
Console.Write(arr[i] + " " );
else
Console.WriteLine(arr[i]);
}
}
public static void Main()
{
int []arr = { 9, 8, 11, 13, 10, 15, 14, 16, 20, 5 };
int n = arr.Length;
printmaxSubseq(arr, n);
}
}
|
Javascript
<script>
function printmaxSubseq(arr, n)
{
let i;
for (i = 0; i < n; i++) {
if (arr[i] < arr[i + 1])
document.write(arr[i] + " " );
else
document.write(arr[i] + "<br>" );
}
}
let arr = [ 9, 8, 11, 13, 10, 15, 14, 16, 20, 5 ];
let n = arr.length;
printmaxSubseq(arr, n);
</script>
|
Output:
9
8 11 13
10 15
14 16 20
5
Time Complexity: O(n)
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Last Updated :
26 Dec, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...