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

2020蓝桥杯真题最长递增 C语言/C++

题目描述
在数列a_1 ,a_2,⋯,a_n 中,如果a_i <a_i+1 <a_i+2<⋯<a_j,则称 a_i至 a_j为一段递增序列,长度为 j−i+1。

定一个数列,请问数列中最长的递增序列有多长。

输入描述
输入的第一行包含一个整数 n。

第二行包含 n 个整数 a 1 ,a 2 ,⋯,a n ,相邻的整数间用空格分隔,表示给定的数列。

其中,2≤n≤1000,0≤数列中的数≤10^4

输出描述:
输出一行包含一个整数,表示答案。

输入输出样例
示例
输入
7
5 2 4 1 3 7 2
输出
3
运行限制
最大运行时间:1s
最大运行内存: 256M

所需变量
int a[1005];//将每个数都存进数组

int sum = 0;//代表目前最长的递增个数

int max = 0;//代表所存储的最长递增个数

int i;//循环变量

int n;//输入的要输入几个数

思路:
我们首先将每个数都存入数组中,存入后,我们将逐个判断,如果他比前一个大那就代表他是递增的,那我们就让sum++,直到遇到不大的,那我们就判断目前的sum跟我们存储的最大max之间的关系,如果sum比max大,那么说明我们需要更新max的值,那么我们将sum赋值给max,并且将sum赋值为1,然后接着循环下去!

for(i = 1;i<n;i++){cin>>a[i];if(a[i-1]<a[i]){sum++;continue;}else{if(sum>max){max = sum;}sum = 1;}}

该算法本人认为比较优,如果有更好的想法,欢迎q我!
最后将自己的思路整体梳理一下得到以下代码(编译器是dev,语言是C语言):

#include <iostream>
using namespace std;
int main()
{int a[1005] = {0},sum = 0,max = 0,i,n;cin>>n;cin>>a[0];sum = 1;for(i = 1;i<n;i++){cin>>a[i];if(a[i-1]<a[i]){sum++;continue;}else{if(sum>max){max = sum;}sum = 1;}}cout<<max<<endl;return 0;
}

在这里插入图片描述

http://www.lryc.cn/news/37989.html

相关文章:

  • 华为OD机试题 - 寻找连续区间(JavaScript)| 机考必刷
  • 一次疲惫的调试--累了及时透气
  • 综合练习7 摄氏度转华氏温度(“\t“的使用,循环语句)
  • AWS数据库总结
  • 2个步骤就能批量给视频添加滚动字幕
  • PHP 的运行方式有哪些?
  • Web学习3_JavaScript
  • 「MySQL基础」不可重复读和幻读的区别
  • CorelDRAW2023最新版新增功能200多个新模板
  • springboot自定义日志以及行号正确展示
  • 【GAOPS055】verilog 乘法、除法和取余
  • TCP UPD详解
  • 金三银四、金九银十 面试宝典 MySQL面试题 超级无敌全的面试题汇总(超万字的面试题,让你的MySQL无可挑剔)
  • 【Java】初识Java
  • JVM相关知识
  • 【LeetCode】剑指 Offer(21)
  • 线性求解器Ax=b的验证
  • java 事件处理机制 观察者模式
  • 使用 HTML5 轻松验证表单插件
  • 【Error: ImagePullBackOff】Kubernetes中Nginx服务启动失败排查流程
  • 九龙证券|直逼1.5万亿!A股融资余额创年内新高,青睐这些行业和个股
  • 【JavaScript】36_正则表达式
  • 参考 | 辨别真假笔记本三星内存条 (ddr4)
  • JavaScript Math(算数)对象
  • MyBatis里面用了多少种设计模式?
  • 第三十二周精华分享(2023.02.27-2023.03.06)
  • 数学建模资料整理
  • 设计模式---抽象工厂模式
  • Java Web 实战 07 - 多线程基础之单例模式
  • uniapp上实现左右关联滚动