程序员代码面试指南:暴力 最长的可整合子数组的长度

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int n;
 6     scanf("%d", &n);
 7 
 8     vector<int> vec(n);
 9     for (int i = 0; i < n; i++)scanf("%d", &vec[i]);
10     unordered_set<int> s;
11 
12     int res = 1;
13     for (int i = 0; i < n; i++)
14     {
15         int min = INT_MAX, max = INT_MIN;
16         for (int j = i; j < n; j++)
17         {
18             if (s.find(vec[j]) != s.end())break;
19             s.insert(vec[j]);
20             if (vec[j] < min)min = vec[j];
21             if (vec[j] > max)max = vec[j];
22             if (max - min == j - i)res = res < j - i + 1 ? j - i + 1 : res;
23         }
24         s.clear();
25     }
26     printf("%d", res);
27 }

 

posted @ 2019-10-14 11:17  冷眼旁观你的泪  阅读(200)  评论(0编辑  收藏  举报