太阳黑子最大数量一直增加的最长连续年数

一、题目

1、输入描述

输入一个正整数N(0<N≤1000000),表示数据记录的年数第一行,第二行,输入N个用空格隔开的正整数(0<正整数<1e9),表示连续N年的太阳黑子最大数量

2、输出描述

输出一个非负整数,表示太阳黑子最大数量连续增加记录中的最长连续年数。

3、输入样例

8

23124849

4、输出样例

4

二、分析

咱们首先来分析这道题

今天这段注解可以说是保姆级的了

cpp 复制代码
#include <iostream>  
#include <vector>
1、这两行代码包含了iostream和vector这两个库。iostream库用于处理输入输出操作,而vector库用于处理动态数组。
cpp 复制代码
int main() {
2、这是主函数的开始。
cpp 复制代码
int N;  
    std::cin >> N;
3、声明一个整数变量N,并从标准输入读取一个值赋给它。这个值表示接下来要输入的记录数量。
cpp 复制代码
std::vector<int> records(N);  
    for (int i = 0; i < N; i++) {  
        std::cin >> records[i];  
    }
4、创建一个大小为N的整数向量records,并循环读取N个整数,将它们存储在records向量中。
cpp 复制代码
int maxIncreasingYears = 0;  
    int currentIncreasingYears = 1;
5、声明并初始化两个整数变量。maxIncreasingYears用于存储连续增长的最长年限,而currentIncreasingYears用于追踪当前连续的增长年限。
cpp 复制代码
for (int i = 1; i < N; i++) {  
        if (records[i] > records[i - 1]) {  
            currentIncreasingYears++;  
        } else {  
            if (currentIncreasingYears > maxIncreasingYears) {  
                maxIncreasingYears = currentIncreasingYears;  
            }  
            currentIncreasingYears = 1;  
        }  
    }
6、这个循环遍历records向量,从第二个元素开始(索引为1)。如果当前元素大于前一个元素,则currentIncreasingYears增加1。否则,如果currentIncreasingYears大于maxIncreasingYears,则更新maxIncreasingYears的值,并将currentIncreasingYears重置为1。
cpp 复制代码
if (currentIncreasingYears > maxIncreasingYears) {  
        maxIncreasingYears = currentIncreasingYears;  
    }
7、这个if语句检查在循环结束后currentIncreasingYears是否仍然是最大的。这确保了我们不会错过在输入序列的最后一段连续增长。
cpp 复制代码
std::cout << maxIncreasingYears << std::endl;
8、输出连续增长的最长年限。
cpp 复制代码
return 0;  
}
9、主函数结束,并返回0,表示程序成功执行。

三、总结

这段代码读取一个整数N,然后读取N个整数,并将它们存储在一个向量中。接着,它找出并输出这些整数中连续增长的最长年限。

四、整合代码

cpp 复制代码
//给定一系列连续N年的太阳黑子最大数量记录,找出其中最长的连续年份,使得太阳黑子最大数量连续增加。

#include <iostream>
#include <vector>

int main() {
    int N;
    std::cin >> N;

    std::vector<int> records(N);
    for (int i = 0; i < N; i++) {
        std::cin >> records[i];
    }

    int maxIncreasingYears = 0;
    int currentIncreasingYears = 1;

    for (int i = 1; i < N; i++) {
        if (records[i] > records[i - 1]) {
            currentIncreasingYears++;
        } else {
            if (currentIncreasingYears > maxIncreasingYears) {
                maxIncreasingYears = currentIncreasingYears;
            }
            currentIncreasingYears = 1;
        }
    }

    if (currentIncreasingYears > maxIncreasingYears) {
        maxIncreasingYears = currentIncreasingYears;
    }

    std::cout << maxIncreasingYears << std::endl;

    return 0;
}

感谢您观看,咱们下班列车再会

相关推荐
用户979984807186 小时前
200 行代码写一个能跑的 AI Agent:不依赖任何框架,只靠 tool-calling 原理
算法
threerocks6 小时前
【Muse实战】X 流量作战室搭建保姆级教程 - 拥有你自己的运营团队
算法
GreenTea6 小时前
深度拆解 ScienceBuddy:如何用“双层递归自进化”构建高可靠科研 Agent Harness
前端·后端·算法
花椒技术6 小时前
2.46 秒生成 5 秒视频:拆解 H3 Max 的模型、推理栈与硬件协同
算法·音视频开发·视频编码
vivo互联网技术6 小时前
ART:妆容迁移框架,重新定义高保真妆容迁移 | ECCV 2026
人工智能·算法·图像识别
用户0441440924496 小时前
卫星信号模拟器里的四个坐标转换公式
算法
橘和柠6 小时前
阿里 open-code-review (AI代码审查工具)实战:安装、四层规则链、自定义规则格式与实测避坑
算法·面试
得物技术6 小时前
别再只卷向量检索了,得物交易搜索如何用“生成式”实现召回范式跃迁?
人工智能·算法·llm
罗西的思考6 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(4)--- Rollout实现细节
人工智能·算法
罗西的思考6 小时前
机器人 / 物理 Agent Harness 综合分析与对比:从「更强的模型」到「更好的系统」
人工智能·算法·机器学习