- 题意描述
- 给定一个不同的整数的数组,求他最长的可除的数组的长度(数组中的每两个数是可除的)
- 思路
- 代码123456789101112131415161718192021222324252627282930313233class 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;}};
第368题---largest divisible subset
坚持原创技术分享,您的支持将鼓励我继续创作!