博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1006 等差数列
阅读量:5892 次
发布时间:2019-06-19

本文共 1119 字,大约阅读时间需要 3 分钟。

1006 等差数列

 

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 查看运行结果
 
 
题目描述 
Description

给定n(1<=n<=100)个数,从中找出尽可能多的数使得他们能够组成一个等差数列.求最长的等差数列的长度.

输入描述 
Input Description

第一行是一个整数n,接下来一行包括了n个数,每个数的绝对值不超过10000000.

输出描述 
Output Description

对于每个输入数据,输出你所找出的最长等差数列的长度

样例输入 
Sample Input

7

3

8

4

5

6

2

2

样例输出 
Sample Output

5

数据范围及提示 
Data Size & Hint

 挨着枚举,注意特判

#include
#include
#include
using namespace std;int a[105],n,ans;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); if(n==1){printf("1\n");return 0;}//特判,下面程序判断序列至少有2个元素的情况 sort(a+1,a+n+1);//题目说是组成序列,并非是把输入数据当数列 for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){
//遍历以所有i开头的最长序列 int now=j,sum=2;//now从i+1(j)往后记录最长序列;至少有2个元素 int tmp=a[j]-a[i];//后-前 for(int k=j+1;k<=n;k++){ if(a[k]-a[now]==tmp) now=k,sum++; if(a[k]-tmp>a[now]) break; } ans=max(ans,sum);//更新 } } printf("%d\n",ans); return 0;}

 

转载于:https://www.cnblogs.com/shenben/p/5516180.html

你可能感兴趣的文章
Mac OSX 中java7 java8环境的配置
查看>>
我所理解的JDK自动装箱和拆箱
查看>>
30分钟入门Java
查看>>
elasticsearch学习——环境搭建2
查看>>
数据科学求职过程中总结的四点经验
查看>>
git代码首次提交
查看>>
mysql安装,远程连接,以及修改密码
查看>>
Dart服务器端 shelf_route包
查看>>
spring security(四)
查看>>
js中return、return false、return true的区别
查看>>
Mybatis查询返回Map类型数据
查看>>
java的深拷贝与浅拷贝
查看>>
程序员如何提高工作效率
查看>>
数据库水平切分(其他应用)
查看>>
easyui 将已经是 textbox 的输入框改成时间框
查看>>
python基础整理——计算机语言分类
查看>>
python基础学习整理——字典
查看>>
promise
查看>>
如何使用ABSL代码调用Web service
查看>>
将Java应用部署到SAP云平台neo环境的两种方式
查看>>