题目描述:
输入数字,第一行为数组的大小,第二行为数组的值。求其中相邻两个数字相差不大于8的最大片段的长度。
示例1:
输入:9
1 2 4 6 12 2 8 6 4
输出:5
示例2:
输入:10
1 4 5 6 2 3 7 9 2 1
输出:10
代码实现:
#include<iostream>
#include<vector>
using namespace std;
//题目描述:输入一行数字,求其中相邻两个数字相差不大于8的最大片段的长度。
int getmaxlen(vector<int> segment){
int result=1;
int curr=1;
for(int i=0 ; i<segment.size()-1 ; i++){
if(abs(segment[i]-segment[i+1]) <= 8){//绝对值要加
curr++;
}else{
result = max(result,curr);
curr=1;
}
}
return max(result,curr);
}
int main(){
int a,n;
vector<int> se;
cin>>n;
while(n>0){
cin>>a;
se.push_back(a);
n--;
}
int x = getmaxlen(se);
cout<<x<<endl;
return 0;
}
运行结果截图: