题意:

  给一个序列,要找一个等差或等比的连续子序列,求其最长的长度。

思路:

  扫两遍,判断等差或等比即可。从左往右扫,维护一个滑动窗口,考虑新加进来的数,如果满足了要求,则更新长度,否则只留最后两个数字,其他删掉,接着继续考虑下一个数字。等比也是如此,只是要注意精度的问题。

  别人的代码:

 #include <bits/stdc++.h>
using namespace std;
const int MAX = 1e6+;
int arr[MAX]; int main(void)
{
//freopen("in.txt", "r", stdin);
int t = ;
scanf("%d", &t);
while(t--)
{
int n = ;
scanf("%d", &n); for(int i=; i<=n; ++i)
{
scanf("%d", &arr[i]);
} if (n== || n==)
{
printf("%d\n", n);
continue;
} int l, r;
l = ;
int diff = arr[]-arr[];
int ans1 = ;
for(r=; r<=n; ++r)
{
if (arr[r] - arr[r-] != diff)
{
diff = arr[r]-arr[r-];
l = r-;
}
ans1 = max(ans1, r-l+);
} l=;
double ddiff = 1.0*arr[]/arr[];
int ans2 = ;
for(r=; r<=n; ++r)
{
if ( fabs( 1.0*arr[r]/arr[r-] - ddiff) > 0.000001)
{
ddiff = 1.0*arr[r]/arr[r-];
l = r-;
}
ans2 = max(ans2, r-l+);
}
printf("%d\n", max(ans1, ans2));
}
return ;
}

AC代码

最新文章

  1. Python基础操作-函数
  2. 关于调试日志Log
  3. Ant安装、环境变量配置及验证
  4. XML的文档声明
  5. 5个让DBA爱上你的SQL技巧
  6. PHP学习笔记 - 进阶篇(8)
  7. thinPHP中多维数组的遍历
  8. xcode中找不到XXX.dylib
  9. Git如何删除版本库中的一个提交?
  10. 【3D计算机图形学】变换矩阵、欧拉角、四元数
  11. DHCP服务器的搭建
  12. 性能测试工具---jmeter
  13. php $_SERVER中的一些选项说明
  14. dubbo接口访问控制
  15. HDU 2647 Reward(拓扑排序,vector实现邻接表)
  16. APP性能测试开始之旅
  17. mongoose之findOneAndUpdate方法之代码示例
  18. java基础思维导图大全
  19. python堆排序
  20. zzuli2130卡时bfs题

热门文章

  1. HDU 2674 N!Again(数学思维水题)
  2. POJ 2070
  3. PHP5.4最新特性
  4. BZOJ 1191: [HNOI2006]超级英雄Hero 二分匹配
  5. sql主键的一点重要理解
  6. 【hdu3579-Hello Kiki】拓展欧几里得-同余方程组
  7. 李洪强漫谈iOS开发[C语言-042]-简单计算器
  8. Java7编程高手进阶读书笔记--final学习
  9. 基于RPC原理的dubbo
  10. Zabbix简介(第一章第一节)