leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
2799.cpp (581B)
0 class Solution {
1 public:
2 int countCompleteSubarrays(const vector<int> &nums) {
3 static int count[10001];
4 memset(count, 0x00, sizeof(count));
6 int uniq = 0, res = 0, cnt = 0;
7 ;
8 for (const int n : nums)
9 if (!count[n]) count[n] = 1, uniq++;
10 for (int i = 0, left = 0; i < nums.size(); i++) {
11 if (count[nums[i]]++ == 1) cnt++;
12 while (cnt == uniq) {
13 res += nums.size() - i;
14 if (--count[nums[left++]] == 1) cnt--;
15 }
16 }
17 return res;
18 }
19 };