Участник:Михеева Анастасия Максимовна/Largest Divisible Subset
Материал из DISCOPAL
< Участник:Михеева Анастасия Максимовна
Версия от 20:48, 23 мая 2020; Михеева Анастасия Максимовна (обсуждение | вклад) (Новая страница: «<code-cpp> class Solution { public: vector<int> largestDivisibleSubset(vector<int>& nums) { sort(nums.begin(), nums.end()); vector<int> T(nums…»)
class Solution { public: vector<int> largestDivisibleSubset(vector<int>& nums) { sort(nums.begin(), nums.end()); vector<int> T(nums.size(), 0); vector<int> parent(nums.size(), 0); int m = 0; int mi = 0; for(int i = nums.size() - 1; i >= 0; --i) { for(int j = i; j < nums.size(); ++j) { if(nums[j] % nums[i] == 0 && T[i] < 1 + T[j]) { T[i] = 1 + T[j]; parent[i] = j; if(T[i] > m) { m = T[i]; mi = i; } } } } vector<int> ret; for(int i = 0; i < m; ++i) { ret.push_back(nums[mi]); mi = parent[mi]; } return ret; } };