#include <iostream>
#include <vector>
using namespace std;

int main() {
    int t;
    cin >> t;
    while (t--) {
        int n;
        cin >> n;
        int m = n - 1;
        vector<int>nums(m);
        for (int i = 0; i < m; i++) {
            cin >> nums[i];
        }
        //把数组分割
        vector<vector<int>>ans;
        vector<int>k;
        k.push_back(nums[0]);
        for (int i = 1; i < m; i++) {
            if (nums[i] - k.back() != 1) {
                ans.push_back(k);
                k.clear();
                k.push_back(nums[i]);
            } else {
                k.push_back(nums[i]);
            }
        }
        if (!k.empty()) {
            ans.push_back(k);
        }
        //看前一段的末尾和这一段的头是不是相差2
        int pre = ans[0].back();
        int len = ans[0].size();
        int maxlen = len;
        for (int i = 1; i < ans.size(); i++) {
            if (ans[i][0] - pre == 2) {
                len += ans[i].size() + 1;
            } else {
                len = ans[i].size();
            }
            pre=ans[i].back();
            maxlen = max(maxlen, len);
        }
        cout << maxlen << endl;
    }
    return 0;
}
有没有好心人看看那里错了
全部评论

相关推荐

27届求职交流
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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