如果这题只是求最长整除子集的长度就很直白的DP,但是这题要求的是子集。
这也是这题的难点所在。
368. 最大整除子集
给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对 (Si,Sj) 都要满足:Si % Sj = 0 或 Sj % Si = 0。
如果有多个目标子集,返回其中任何一个均可。
示例 1:
1
2
3 > 输入: [1,2,3]
> 输出: [1,2] (当然, [1,3] 也正确)
>
示例 2:
1
2
3 > 输入: [1,2,4,8]
> 输出: [1,2,4,8]
>
思路 : 这题的难点是怎么回溯找到整个最长的子集,下面用的是一个pre
数据去存储在nums[i]
之前的下标j
===> [nums[j] nums[i]]
1 | class Solution { |