当前位置: 首页 > article >正文

C语言-详细讲解-洛谷P1420 最长连号

1.题目要求

2.题目分析 

考虑到说明里的数据规模,我们可以用动态内存分配来创建合适大小的数组,避免栈溢出问题,通过循环遍历,最终找到最长连号。

3.代码实现

#include <stdio.h>
#include <stdlib.h>

int main() {
    int n;
    scanf("%d", &n);
    // 使用动态内存分配来创建合适大小的数组,避免栈溢出问题
    int *a = (int *)malloc(n * sizeof(int));
    if (a == NULL) {
        printf("内存分配失败\n");
        return -1;
    }
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }
    int max_cnt = 1;  // 用于记录最长连号长度
    int current_cnt = 1;  // 当前正在统计的连号长度,初始为1,因为至少有一个数也算一段连号起始
    for (int i = 0; i < n - 1; i++) {  // 注意循环条件避免越界访问,只到n-1
        if (a[i] + 1 == a[i + 1]) {
            current_cnt++;
            // 更新最大连号长度
            if (current_cnt > max_cnt) {
                max_cnt = current_cnt;
            }
        } else {
            current_cnt = 1;  // 如果不满足连号条件,重置当前连号长度为1
        }
    }
    printf("%d\n", max_cnt);
    free(a);  // 释放动态分配的内存
    return 0;
}

***新人博主创作不易,希望大家多多点赞关注呀~


http://www.kler.cn/a/408517.html

相关文章:

  • 图形渲染性能优化
  • 【Android】Service使用方法:本地服务 / 可通信服务 / 前台服务 / 远程服务(AIDL)
  • 大语言模型---梯度的简单介绍;梯度的定义;梯度计算的方法
  • 【H2O2|全栈】JS进阶知识(八)ES6(4)
  • 大数据技术之SparkCore
  • (附项目源码)Java开发语言,219 ssm律师事务所业务管理系统的设计与实现,计算机毕设程序开发+文案(LW+PPT)
  • 字符串-07-判断两个IP是否属于同一子网
  • 微信小程序中使用iconfont的详细教程
  • Python棉花病虫害图谱系统CNN识别+AI问答知识neo4j vue+flask深度学习神经网络可视化
  • grep/egrep正则表达式
  • Linux基本指令的使用
  • 力扣 239. 滑动窗口最大值
  • 数字化工厂 MES试点方案全解析(三)
  • 行为树详解(2)——最简单的行为树
  • LeetCode题练习与总结:棋盘上的战舰--419
  • 【Python爬虫五十个小案例】爬取豆瓣电影Top250
  • ElasticSearch7.x入门教程之索引数据类型和映射(四)
  • 11.21 小清新图论专场训练
  • 华为FusionCube 500-8.2.0SPC100 实施部署文档
  • 项目实战:Vue3开发一个购物车
  • ComfyUI绘画|SD WebUI 与 SD ComfyUI 的区别
  • 【含文档】基于.NET的医院医保管理系统(含源码+数据库+lw)
  • 2024最新python使用yt-dlp
  • 2024大数据职业技能竞赛(国赛)模块E-工业 用折线图展示设备OP160每日的运行时长
  • 疑难Tips:NextCloud域名访问登录时卡住,显示违反内容安全策略
  • MQ重复消费与消息顺序