368. Largest Divisible Subset
来源:互联网 发布:辫子戏 知乎 编辑:程序博客网 时间:2024/05/17 07:23
Difficulty: Medium
Given a set of distinct positive integers, find the largest subset such that every pair (Si, Sj) of elements in this subset satisfies: Si % Sj = 0 or Sj % Si = 0.
If there are multiple solutions, return any subset is fine.
Example 1:
nums: [1,2,3]Result: [1,2] (of course, [1,3] will also be ok)
Example 2:
nums: [1,2,4,8]Result: [1,2,4,8]
class Solution {public: vector<int> largestDivisibleSubset(vector<int>& nums) { int size=nums.size(); if(size==0) return nums; sort(nums.begin(), nums.end()); vector<int> dp(size, 1); vector<int> pre(size, -1); int max=0, index=0; for(int i=0; i<size-1; i++) for(int j=i+1; j<size; j++){ if((nums[j]%nums[i]==0) && (dp[i]+1>dp[j])){ dp[j]=dp[i]+1; pre[j]=i; } if(dp[j]>max){ max=dp[j]; index=j; } } vector<int> ans; while(index!=-1){ ans.push_back(nums[index]); index=pre[index]; } sort(ans.begin(), ans.end()); return ans; }};
dp: 以nums[n]为结尾的largest division subset是最长的以nums[i]结尾的largest division subset加上nums[n],其中nums[n]能被nums[i]整除。若不存在这样的nums[i],那么以nums[n]为结尾的largest division subset就是它自己。
dp[n]=max{dp[i]+1 | n%i==0}
用数组pre[j]记录序列中nums[j]的前一个数。
0 0
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset**
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- 368. Largest Divisible Subset
- [leetcode] 368. Largest Divisible Subset
- Leetcode 368. Largest Divisible Subset
- Java中static的使用方法
- C——野指针
- 欢迎使用CSDN-markdown编辑器
- [ATPG]set_atpg -capture_cycles d 中的 d(数字)代表什么意思?
- 单片机学习笔记
- 368. Largest Divisible Subset
- 网络爬虫学习----安装程序
- GeoHash核心原理解析
- 实习第一周(第一天)(安装linux,学习python)
- 项目第一天
- [Linux C编程]例说makefile增加宏定义
- Android内存缓存
- HDU 1285 确定比赛名次(拓扑排序)
- HDU-1885 Key Task