leetcode 368. Largest Divisible Subset
来源:互联网 发布:淘宝贷款怎么联系客服 编辑:程序博客网 时间:2024/05/21 19:28
1.基本思路:
如果A 是满足题意要求的一个集合(不一定是最优集合),即A的任意元素属于数组nums, 且任意两个属于A的元素Si, Sj 满足条件:Si%Sj等于0 或 Sj%Si等于0; 假设Sk是当前集合A中的最大值,若存在一个元素elem( elem也属于nums ),且elem%Sk 等于 0,当将elem加入A形成新的子集A‘, 则A’也同样满足题意要求,不断“填充”集合A,则可以找出最优集合!
class Solution {public: vector<int> largestDivisibleSubset(vector<int>& nums) { if (nums.empty() == true) return ret; record.resize(nums.size()); sort(nums.begin(),nums.end()); for(int i = 0;i < nums.size(); ++i){ record[i]=1; int CheckPoint = 0; // 第二个循环停止条件 for(int j = i-1; j >= 0; --j){ if (nums[i] % nums[j] == 0){ if (CheckPoint != 0 && nums[j] % CheckPoint == 0) break; else{ if (CheckPoint == 0) CheckPoint = nums[j]; record[i] = record[i] > record[j]+1 ? record[i] : record[j]+1; } } } } vector<int>::iterator biggestIter = max_element(record.begin(), record.end()); int index = distance(record.begin(), biggestIter); ret.push_back(nums[index]); int last = index; for (int i = index - 1; i >= 0 ;--i){ if (record[last] == record[i] + 1 && nums[last] % nums[i] == 0){ ret.push_back(nums[i]); last = i ; } } return ret; }private: vector<int> record; vector<int> ret;};
0 0
- [leetcode] 368. Largest Divisible Subset
- Leetcode 368. Largest Divisible Subset
- LeetCode 368. Largest Divisible Subset
- leetcode 368. Largest Divisible Subset
- [leetcode] 368. Largest Divisible Subset
- leetcode.368. Largest Divisible Subset
- [Leetcode]368. Largest Divisible Subset
- [leetcode] 368. Largest Divisible Subset
- leetcode 368. Largest Divisible Subset
- [leetcode] 368. Largest Divisible Subset
- [leetcode] 368. Largest Divisible Subset
- Leetcode: 368. Largest Divisible Subset
- *Leetcode 368. Largest Divisible Subset
- Leetcode-368. Largest Divisible Subset
- Leetcode 368. Largest Divisible Subset
- Leetcode 368. Largest Divisible Subset
- LeetCode 368. Largest Divisible Subset
- [LeetCode]368. Largest Divisible Subset
- tcp客户端和服务端互发消息
- java基础学习总结——构造方法
- 电路组成
- 最长连续上升子序列
- JS实现动画效果框架
- leetcode 368. Largest Divisible Subset
- 简单算法学习笔记一
- Apache [error] server reached MaxClients setting, consider raising the MaxClients setting
- 电影<一个都不能少>观后感 ---记码神实训第四天
- Java同步锁问题
- PyGobject(四十八)布局容器之HeaderBar
- (NYoj 284)坦克大战--裸BFS ,优先队列
- 小飞鱼通达数码微信二维码
- iOS : 判断两个控件是否重合.(可用于判断某一个控件是否显示在window上)