Number of Different Subsequences GCDs LeetCode solution in C++

1
class Solution {
2
public:
3
int countDifferentSubsequenceGCDs(vector<int> &nums) {
4
int curr_max = INT_MIN, ret = 0, n = nums.size();
5
int present[200001] = {0};
6
for (int i = 0; i < n; i++) {
7
curr_max = max(curr_max, nums[i]);
8
present[nums[i]] = 1;
9
}
10
for (int i = 1; i <= curr_max; i++) {
11
int curr_gcd = 0;
12
for (int j = i; j <= curr_max; j += i) {
13
if (present[j] == 1) curr_gcd = gcd(curr_gcd, j);
14
if (curr_gcd == i) {
15
ret++;
16
break;
17
}
18
}
19
}
20
return ret;
21
}
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0