新建建设兵团科技局网站,wordpress添加js文件,html使用wordpress,网站推广需要多少钱易下拉系统题目描述 在数列a_1 ,a_2,⋯,a_n 中#xff0c;如果a_i a_i1 a_i2⋯a_j#xff0c;则称 a_i至 a_j为一段递增序列#xff0c;长度为 j−i1。
定一个数列#xff0c;请问数列中最长的递增序列有多长。
输入描述 输入的第一行包含一个整数 n。
第二行包含…题目描述 在数列a_1 ,a_2,⋯,a_n 中如果a_i a_i1 a_i2⋯a_j则称 a_i至 a_j为一段递增序列长度为 j−i1。
定一个数列请问数列中最长的递增序列有多长。
输入描述 输入的第一行包含一个整数 n。
第二行包含 n 个整数 a 1 ,a 2 ,⋯,a n 相邻的整数间用空格分隔表示给定的数列。
其中2≤n≤10000≤数列中的数≤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;in;i){cina[i];if(a[i-1]a[i]){sum;continue;}else{if(summax){max sum;}sum 1;}}该算法本人认为比较优如果有更好的想法欢迎q我 最后将自己的思路整体梳理一下得到以下代码编译器是dev语言是C语言
#include iostream
using namespace std;
int main()
{int a[1005] {0},sum 0,max 0,i,n;cinn;cina[0];sum 1;for(i 1;in;i){cina[i];if(a[i-1]a[i]){sum;continue;}else{if(summax){max sum;}sum 1;}}coutmaxendl;return 0;
}