C++ 最大化连续步数以便在屋顶上获得海拔的增加

C++ 最大化连续步数以便在屋顶上获得海拔的增加

在这篇文章中,我们的目标是确定在一系列的相邻建筑物的高度提供的情况下,能够连续采取的最多步数,以便在从一个屋顶移动到相邻建筑物的屋顶时获得海拔增加。也就是说,依次提供每个建筑物的高度。您可以从一个建筑物的屋顶继续前进到下一个建筑物。您必须确定您实际上可以连续采取多少步而每一步仍然获得海拔增加。

问题陈述

最大化连续步骤,以便在屋顶上获得海拔的增加。

方法

在给定的整数数组中,也就是以顺序给出所有建筑物的高度的数组中,我们检查第一个元素是否小于第二个元素。更明确地说,第一个建筑物的高度是否小于第二个建筑物或相邻的建筑物的高度。如果第一个元素或第一个建筑物的高度小于第二个元素或第二个建筑物的高度,则我们采取1步。如果第一个元素或第一个建筑物的高度不小于第二个元素或第二个建筑物的高度,则我们忽略它。

同样,将每个建筑物的高度与紧邻其旁边的建筑物的高度进行比较。

也就是说,将给定数组中的每个元素与该数组中的下一个元素或相邻元素的值进行比较。如果考虑的元素小于下一个元素,我们计算步数。否则,如果考虑的元素不小于下一个元素,则我们忽略它。

算法

以下是解决最大化连续步骤,以便在屋顶上获得海拔增加的问题的算法。

步骤1: 从计数器为0开始。

步骤2: 将最大值设为0。

步骤3: 如果a[i] > a[i-1],则将计数器增加1。

否则,maximum = max(maximum, count),并且将计数器设置为0。

步骤4: 最后,返回最大值。

步骤5: 停止。

示例

输入1

Integer array, a {2,4,6,8,10}

输出

4

解释

2\mathrm{\rightarrow}4 1 步

4\mathrm{\rightarrow}6 1 步

6\mathrm{\rightarrow}8 1 步

8\mathrm{\rightarrow}10 1 步

总步数 = 4

这是从2\mathrm{\rightarrow}4,1 步 加上从4\mathrm{\rightarrow}6,1 步 加上从6\mathrm{\rightarrow}8,1 步 和 8\mathrm{\rightarrow}10 1 步。所以总共4 步。

输入2

Integer array, a {2,4,3,8}

输出

2

解释

2\mathrm{\rightarrow}4 1 步

4\mathrm{\rightarrow}3 不计入,因为是下降

3\mathrm{\rightarrow}8 1 步

总步数 = 1

即从2\mathrm{\rightarrow}4,1步 或者 3\mathrm{\rightarrow}8,1步。

输入3

Integer array, a {2,4,4,3}

输出

1

解释
2\mathrm{\rightarrow}4 1步

4\mathrm{\rightarrow}4 不计入,因为没有增益

4\mathrm{\rightarrow}3 不计入,因为是下降

总步数 = 1

即从 2\mathrm{\rightarrow;}4,1步。

下面给出了一个C程序,用于找到在屋顶上向前迈出的最大连续步数,以获得海拔的增加。

代码

#include <stdio.h>
#include<math.h>
int consecutive_steps(int a[], int l){
    int count = 0;
    int maximum= 0;
   #define max
    for (int i = 1; i < l; i++) {
        // count the number of consecutive
        if (a[i] > a[i - 1])
            count++;
        else {
            maximum = max(maximum, count);
            count = 0;
        }
    }
    return max(maximum, count);
}
int main()
{
    int a[] = { 2, 4, 6, 8, 10};
    int l = sizeof(a) / sizeof(a[0]);
    printf("%d",consecutive_steps (a, l));
}

输出

4

结论

同样地,我们可以通过输入数组的值来找到在屋顶上连续最大的前进步数,以获得高度的增加。

本文解决了获取在屋顶上连续最大的前进步数以获得高度增加的挑战。在这里,提供了用于输入数组值的C编程代码来找到在屋顶上连续最大的前进步数以获得高度增加。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程