USTC机试——求最大等差子序列的长度

如图中所详述:
代码如下
所示:
#include<stdio.h>
#include<string.h>
#define N 100
int main(){
    int ans[N],count=0;
	printf("请输入您的数字(ctr+z结束):\n");
    while(scanf("%d",&ans[count])!=EOF){
	    count++;
	}
	int max=0;//记录最大值
	for(int i=0;i<count;i++){
		for(int j=i+1;j<count;j++){
		   int cnt=2;//差值序列初始都是两个
		   int dis=ans[j]-ans[i];//记录差串的前两个数字差值并且向后找
		   int temp=ans[j]+dis;
		   for(int k=j+1;k<count;k++){
			   if(temp==ans[k]){//向后找到了等差值数字,则更新下一个期待的数字
			   temp+=dis;
			   cnt+=1;//长度加一
			   }
		   }
		   if(cnt>max)max=cnt;//更新max
		}
	}
	printf("%d\n",max);
return 0;
}

全部评论

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
Twilight_m...:还是不够贴近现实,中关村那块60平房子200万怎么可能拿的下来,交个首付还差不多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务