zoukankan      html  css  js  c++  java
  • 最长连续等差子数列

    描述:给定一个长度为N的整数数列,你需要在其中找到最长连续子数列的长度,并满足这个子数列是等差的。注意公差小于或等于0的情况也是允许的。

    输入:第一行为测试数据的组数T(1<=T<=100)。请注意,任意两组测试数据之间是相互独立的。 
    每组数据包含两行: 
    第一行为一个整数N(1<=N<=100),表示给定数列长度。
    第二行为N个正整数,其中第i个整数valuei(1<=valuei <=10^5)表示下标为i的数字。

    #include <iostream>
    #include<cstdio>
    #include<string.h>
    using namespace std;
    
    int main()
    {
        int T;
        cin>>T;
        while(T--){
            int N;
            scanf("%d",&N);
            int num[N];
            memset(num,0,sizeof(num));
            for(int i=0;i<N;i++)
                scanf("%d",&num[i]);
            if(N<=2)//如果长度小于等于2,就直接是等差了
                printf("%d
    ",N);
            else{
                int tmp_max_len=2;
                int max_len=2;
                for(int i=2;i<N;i++){
                    if((num[i]-num[i-1])==(num[i-1]-num[i-2])){
                        tmp_max_len++;
                        if(max_len<tmp_max_len)
                            max_len=tmp_max_len;
                    }
                    else
                        tmp_max_len=2;
    
                }
                printf("%d
    ",max_len);
            }
        }
        return 0;
    }
  • 相关阅读:
    信号
    序列化数据的两种方式
    ModelForm的使用
    分页模板
    Django中间件进行用户登陆验证
    Flask 笔记一
    pipenv 使用基本命令
    git本地文件 上传 远程仓库
    service "$service" status 返回的状态
    &>/dev/null 的作用
  • 原文地址:https://www.cnblogs.com/xym4869/p/8645936.html
Copyright © 2011-2022 走看看