Degree of an Array LeetCode solution in C++

1
class Solution {
2
public:
3
int findShortestSubArray(vector<int> &nums) {
4
unordered_map<int, int> cnt, first;
5
int deg = 0, ans = 0;
6
for (int i = 0; i < nums.size(); i++) {
7
if (cnt[nums[i]] == 0) first[nums[i]] = i;
8
cnt[nums[i]]++;
9
if (cnt[nums[i]] > deg) {
10
ans = i - first[nums[i]] + 1;
11
deg = cnt[nums[i]];
12
} else if (cnt[nums[i]] == deg) {
13
ans = min(ans, i - first[nums[i]] + 1);
14
}
15
}
16
return ans;
17
}
18
};
19
// if you like the solution plz upvote.

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0