打印一个数组中所有最大递增的连续子数组
原文:https://www . geeksforgeeks . org/print-all-maximum-递增-连续-阵列中的子阵列/
给定一个数组 arr[] ,任务是找到给定数组中所有最大的连续递增子数组。
示例:
输入: arr[] = { 80,50,60,70,40,50,80,70 } 输出: 80 50 60 70 40 50 80 70
输入: arr[] = { 10,20,23,12,5,4,61,67,87,9 } 输出: 10 20 23 12 5 4 61 67 87 9
方法:迭代数组,将每个元素与其下一个相邻元素进行比较,如果小于下一个元素,则打印它,否则在下一行单独打印它。 以下是上述办法的实施情况。
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
Python 3
# 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
java 描述语言
<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>
Output:
9
8 11 13
10 15
14 16 20
5
时间复杂度: O(n)
版权属于:月萌API www.moonapi.com,转载请注明出处