【发布时间】:2021-12-31 06:41:42
【问题描述】:
给定一个输入数组,输出必须是给定数组的最长算术子数组的长度。
我得到的输出不同于所需的输出。我不明白我哪里出错了,我还是个初学者,所以请忽略菜鸟的错误,并在我出错的地方帮助我。提前致谢。
代码如下:
#include <iostream>
using namespace std;
int main () {
int n;
cin>>n;
int array[n];
for (int i=0;i<n;i++)
{
cin>>array[i];
}
int length = 2;
int cd = array[1] - array[0];
for(int i=2; i<n; i++){
if(array[i] - array[i-1] == cd){
length++;
}
else {
cd = array[i] - array[i-1];
length=2;
}
cout<<length<<" ";
}
return 0;
}
【问题讨论】:
-
为什么要在 for 循环中打印长度?
-
另外,您应该保持最大长度。每次到达 else 语句时都会重置它。