动态规划求最大长度 开辟一个数组保存父节点
class Solution:
def largestDivisibleSubset(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
if nums==[]:
return []
dp=[1]*len(nums)
parent=[-1]*len(nums)
nums.sort()
mymax=1
idx=0
for j in range(len(nums)):
for i in range(j):
if nums[j]%nums[i]==0:
if dp[j]<dp[i]+1:
dp[j]=dp[i]+1
parent[j]=i
if mymax<dp[j]:
mymax=dp[j]
idx=j
res=[]
while mymax:
mymax-=1
res.append(nums[idx])
idx=parent[idx]
return res