给定连续建筑物的高度,找到一个人可以提出的最大连续台阶数,这样他从一栋建筑物的屋顶到下一栋相邻建筑物的屋顶时,其高度就会增加。
例子 :
Input : arr[] = {1, 2, 2, 3, 2}
Output : 1
Explanation :
Maximum consecutive steps from 1 to 2 OR 2 to 3.
Input : arr[] = {1, 2, 3, 4}
Output : 3
这个问题基本上是最长递增子数组的变体
方法:-
initialize count = 0
initialize maximum = 0
if arr[i]>a[i-1]
then count increment
else
maximum = max(maximum, count)
at the end maximum=max(maximum, count)
C++
// CPP code to find maximum
// number of consecutive steps.
#include
using namespace std;
// Function to count consecutive steps
int find_consecutive_steps(int arr[], int len)
{
int count = 0;
int maximum = 0;
for (int index = 1; index < len; index++) {
// count the number of consecutive
// increasing height building
if (arr[index] > arr[index - 1])
count++;
else
{
maximum = max(maximum, count);
count = 0;
}
}
return max(maximum, count);
}
// Driver code
int main()
{
int arr[] = { 1, 2, 3, 4 };
int len = sizeof(arr) / sizeof(arr[0]);
cout << find_consecutive_steps(arr, len);
}
Java
// Java code to find maximum
// number of consecutive steps.
import java.io.*;
class GFG {
// Function to count consecutive steps
static int find_consecutive_steps(int arr[],
int len)
{
int count = 0;
int maximum = 0;
for (int index = 1; index < len; index++) {
// count the number of consecutive
// increasing height building
if (arr[index] > arr[index - 1])
count++;
else
{
maximum = Math.max(maximum, count);
count = 0;
}
}
return Math.max(maximum, count);
}
// Driver code
public static void main (String[] args) {
int arr[] = { 1, 2, 3, 4 };
int len = arr.length;
System.out.println(find_consecutive_steps(arr,
len));
}
}
// This code is contributed by Gitanjali.
Python3
# Python3 code to find maximum
# number of consecutive steps
import math
# Function to count consecutive steps
def find_consecutive_steps(arr, len):
count = 0; maximum = 0
for index in range(1, len):
# count the number of consecutive
# increasing height building
if (arr[index] > arr[index - 1]):
count += 1
else:
maximum = max(maximum, count)
count = 0
return max(maximum, count)
# Driver code
arr = [ 1, 2, 3, 4 ]
len = len(arr)
print(find_consecutive_steps(arr, len))
# This code is contributed by Gitanjali.
C#
// C# code to find maximum
// number of consecutive steps.
using System;
class GFG {
// Function to count consecutive steps
static int find_consecutive_steps(int []arr,
int len)
{
int count = 0;
int maximum = 0;
for (int index = 1; index < len; index++) {
// count the number of consecutive
// increasing height building
if (arr[index] > arr[index - 1])
count++;
else
{
maximum = Math.Max(maximum, count);
count = 0;
}
}
return Math.Max(maximum, count);
}
// Driver code
public static void Main () {
int []arr = { 1, 2, 3, 4 };
int len = arr.Length;
Console.WriteLine(find_consecutive_steps(arr,
len));
}
}
// This code is contributed by vt_m.
PHP
$arr[$index - 1])
$count++;
else
{
$maximum = max($maximum, $count);
$count = 0;
}
}
return max($maximum, $count);
}
// Driver code
$arr = array( 1, 2, 3, 4 );
$len = count($arr);
echo find_consecutive_steps($arr, $len);
// This code is contributed by vt_m.
?>
Javascript
输出 :
3