Largest Divisible Subset LeetCode solution in C++

1
class Solution {
2
public:
3
vector<int> largestDivisibleSubset(vector<int> &nums) {
4
int n = nums.size();
5
sort(nums.begin(), nums.end());
6

7
vector<int> ans;
8
for (int i = 0; i < n; i++) {
9
vector<int> tmp;
10
tmp.push_back(nums[i]);
11

12
// Checking the prev one
13
int j = i - 1;
14
while (j >= 0) {
15
if (tmp.back() % nums[j] == 0) tmp.push_back(nums[j]);
16

17
j--;
18
}
19

20
// Reversing the order to make it in increasing order
21
reverse(tmp.begin(), tmp.end());
22

23
// Checking the forward one
24
j = i + 1;
25
while (j < n) {
26
if (nums[j] % tmp.back() == 0) tmp.push_back(nums[j]);
27

28
j++;
29
}
30

31
// updating the ans
32
if (ans.size() < tmp.size()) ans = tmp;
33
}
34

35
return ans;
36
}
37
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0