Imprima todos los subconjuntos contiguos crecientes máximos en un conjunto

Dada una array arr[] , la tarea es encontrar todos los subarreglos crecientes contiguos máximos en una array dada. 

Ejemplos

Entrada: 
arr[] = { 80, 50, 60, 70, 40, 50, 80, 70 } 
Salida: 
80 
50 60 70 
40 50 80 
70

Entrada: 
arr[] = { 10, 20, 23, 12, 5, 4, 61, 67, 87, 9 } 
Salida: 
10 20 23 
12 

4 61 67 87 
9

Enfoque: iterar sobre la array y comparar cada elemento con su siguiente elemento vecino de modo que, si es menor que el siguiente elemento, imprímalo; de lo contrario, imprímalo individualmente en la siguiente línea.
A continuación se muestra la implementación del enfoque anterior. 

C++

// C++ Implementation to print all the
// Maximal Increasing Sub-array of array
#include <bits/stdc++.h>
using namespace std;
 
// Function to print each of maximal
// contiguous increasing subarray
void printmaxSubseq(int arr[], int n)
{
    int i;
 
    // Loop to iterate through the array and print
    // the maximal contiguous increasing subarray.
    for (i = 0; i < n; i++) {
        // Condition to check whether the element at i, is
        // greater than its next neighbouring element or not.
        if (arr[i] < arr[i + 1])
            cout << arr[i] << " ";
        else
            cout << arr[i] << "\n";
    }
}
 
// Driver function
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

// Java Implementation to print all the
// Maximal Increasing Sub-array of array
import java.util.*;
 
class GFG
{
 
// Function to print each of maximal
// contiguous increasing subarray
static void printmaxSubseq(int arr[], int n)
{
    int i;
 
    // Loop to iterate through the array and print
    // the maximal contiguous increasing subarray.
    for (i = 0; i < n ; i++)
    {
        // Condition to check whether the element at i, is
        // greater than its next neighbouring element or not.
        if (i + 1 < n && arr[i] < arr[i + 1])
            System.out.print(arr[i] + " ");
        else
            System.out.print(arr[i] + "\n");
    }
}
 
// Driver code
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);
}
}
 
// This code is contributed by 29AjayKumar

Python3

# Python3 Implementation to print all the
# Maximal Increasing Sub-array of array
 
# Function to print each of maximal
# contiguous increasing subarray
def printmaxSubseq(arr, n) :
     
    # Loop to iterate through the array and print
    # the maximal contiguous increasing subarray.
    for i in range(n - 1) :
         
        # Condition to check whether the element at i, is
        # greater than its next neighbouring element or not.
        if (arr[i] < arr[i + 1]) :
            print(arr[i], end = " ");
        else :
            print(arr[i]);
             
    print(arr[n - 1]);
     
# Driver function
if __name__ == "__main__" :
 
    arr = [ 9, 8, 11, 13, 10, 15, 14, 16, 20, 5 ];
    n = len(arr);
    printmaxSubseq(arr, n);
 
# This code is contributed by AnkitRai01

C#

// C# Implementation to print all the
// Maximal Increasing Sub-array of array
using System;
 
class GFG
{
     
    // Function to print each of maximal
    // contiguous increasing subarray
    static void printmaxSubseq(int []arr, int n)
    {
        int i;
     
        // Loop to iterate through the array and print
        // the maximal contiguous increasing subarray.
        for (i = 0; i < n ; i++)
        {
            // Condition to check whether the element at i, is
            // greater than its next neighbouring element or not.
            if (i + 1 < n && arr[i] < arr[i + 1])
                Console.Write(arr[i] + " ");
            else
                Console.WriteLine(arr[i]);
        }
    }
     
    // Driver code
    public static void Main()
    {
        int []arr = { 9, 8, 11, 13, 10, 15, 14, 16, 20, 5 };
        int n = arr.Length;
        printmaxSubseq(arr, n);
    }
}
 
// This code is contributed by AnkitRai01

Javascript

<script>
// Javascript Implementation to print all the
// Maximal Increasing Sub-array of array
 
// Function to print each of maximal
// contiguous increasing subarray
function printmaxSubseq(arr, n)
{
    let i;
 
    // Loop to iterate through the array and print
    // the maximal contiguous increasing subarray.
    for (i = 0; i < n; i++) {
        // Condition to check whether the element at i, is
        // greater than its next neighbouring element or not.
        if (arr[i] < arr[i + 1])
            document.write(arr[i] + " ");
        else
            document.write(arr[i] + "<br>");
    }
}
 
// Driver function
 
let arr = [ 9, 8, 11, 13, 10, 15, 14, 16, 20, 5 ];
let n = arr.length;
printmaxSubseq(arr, n);
</script>
Producción: 

9
8 11 13
10 15
14 16 20
5

 

Complejidad de tiempo: O(n)
 

Publicación traducida automáticamente

Artículo escrito por epistler_999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *