給出乙個由無重複的正整數組成的集合,找出其中最大的整除子集,子集中任意一對 (si,sj) 都要滿足:si % sj = 0 或 sj % si = 0
。
如果有多個目標子集,返回其中任何乙個均可。
示例 1
:輸入:[1
,2,3
]輸出:[1
,2](當然,[1
,3] 也正確)
示例 2
:輸入:[1
,2,4
,8]輸出:[1
,2,4
,8]
類似題目:動態規劃應用–最長遞增子串行 leetcode 300
class
solution
;sort
(nums.
begin()
, nums.
end())
;int i, j, n = nums.
size()
;int maxlen =
1, maxlenid =0;
vectorint,
int>>
dp(n)
;//到該位置的最大長度,前乙個idx
for(i =
0; i < n;
++i)
dp[i]
=make_pair(1
,-1)
;for
(i =
1; i < n;
++i)}if
(dp[i]
.first > maxlen)
} vector<
int>
ans(maxlen)
; ans[maxlen-1]
= nums[maxlenid]
;//最後乙個數字
for(i = maxlen-
2; i >=0;
--i)
return ans;}}
;
52 ms 8.7 mb LeetCode368 最大整除子集
給出乙個由無重複的正整數組成的集合,找出其中最大的整除子集,子集中任意一對 si,sj 都要滿足 si sj 0 或 sj si 0。如果有多個目標子集,返回其中任何乙個均可。示例 1 輸入 1,2,3 輸出 1,2 當然,1,3 也正確 示例 2 輸入 1,2,4,8 輸出 1,2,4,8 然後可...
leetcode 368 最大整除子集
思路 其實和最長上公升子串行的思路基本一致。dp i 表示以nums i 結尾的最大的整數子集。dp i max dp j 1,dp i 其中nums j nums i 0 nums i nums j 0 為了避免6 2 4 這樣的序列出現,只需先對nums進行一下排序即可。需要輸出子集,那麼只要開...
368 最大整除子集
給出乙個由無重複的正整數組成的集合,找出其中最大的整除子集,子集中任意一對 si,sj 都要滿足 si sj 0 或 sj si 0。如果有多個目標子集,返回其中任何乙個均可。示例 1 輸入 1,2,3 輸出 1,2 當然,1,3 也正確 示例 2 輸入 1,2,4,8 輸出 1,2,4,8 思路 ...