最长算术(暑假每日一题 11)

网友投稿 265 2022-09-04

最长算术(暑假每日一题 11)

一个算术数组是指至少包含两个整数,且相邻整数之间的差值都相等的整数数组。

她想从数组中选择一个最大长度的连续算术子数组。

请帮助她确定最长的连续算术子数组的长度。

输出格式 每组数据输出一个结果,每个结果占一行。

输入样例:

4710 7 4 6 8 10 1149 7 5 395 5 4 5 5 5 4 5 6105 4 3 2 1 2 3 4 5 6

输出样例:

Case #1: 4Case #2: 4Case #3: 3Case #4: 6

样例解释 对于测试数据 1,最长的连续算术子数组为 [4,6,8,10]。

对于测试数据 2,最长的连续算术子数组就是数组本身。

对于测试数据 3,最长的连续算术子数组为 [4,5,6] 和 [5,5,5]。

对于测试数据 4,最长的连续算术子数组为 [1,2,3,4,5,6]。

#includeusing namespace std;const int N = 200010;int a[N];int main(){ int t; scanf("%d", &t); int n; for(int k = 1; k <= t; k++){ scanf("%d", &n); for(int i = 0; i < n; i++) scanf("%d", &a[i]); int res = 2; for(int i = 2; i < n; i++) if(a[i] - a[i-1] == a[i-1] - a[i-2]){ int j = i + 1; while(j < n && a[j] - a[j-1] == a[j-1] - a[j-2]) j++; res = max(res, j - i + 2); i = j - 1; } printf("Case #%d: %d\n", k, res); } return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数字化转型持续深化,企业智能营销拼什么?(数字化营销转型的含义)
下一篇:API设计笔记:pimpl技巧
相关文章

 发表评论

暂时没有评论,来抢沙发吧~