leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0368.cpp (851B)


0 class Solution {
1 public:
2 vector<int> largestDivisibleSubset(vector<int> &nums) const {
3 sort(begin(nums), end(nums));
5 static int len[1001], parent[1001];
6 memset(len, 0x00, sizeof(len));
8 int maxi = 0, idx = -1;
9 for (int i = size(nums) - 1; i >= 0; i--) {
10 for (int j = i; j < size(nums); j++) {
11 if (nums[j] % nums[i] == 0 && len[i] < 1 + len[j]) {
12 len[i] = 1 + len[j];
13 parent[i] = j;
15 if (len[i] > maxi) {
16 maxi = len[i];
17 idx = i;
18 }
19 }
20 }
21 }
23 vector<int> res(maxi);
24 for (int i = 0; i < maxi; i++) {
25 res[i] = nums[idx];
26 idx = parent[idx];
27 }
29 return res;
30 }
31 };