这题也挺难的(可能是因为我是彩笔),吃早饭的时候一直在想。。想了好久
然后看了一眼提示,如果一个数A可以整除数B,那么他可以整出B的所有因数,那么问题就好解决了
不过写的还是好冗长。。
public class Solution { public List<Integer> largestDivisibleSubset(int[] nums) { Arrays.sort(nums); List<List<Integer>> table=new LinkedList<>(); List<Integer> list=new LinkedList<>(); if(nums.length==0){ return list; } list.add(nums[0]); table.add(list); for(int i=1;i<nums.length;i++){ boolean mark=true; int len=0; int cur=-1; for(int j=i-1;j>=0;j--){ if(nums[i]%nums[j]==0){ mark=false; if(table.get(j).size()>len){ len=table.get(j).size(); cur=j; } } } if(mark){ List<Integer> temp=new LinkedList<>(); temp.add(nums[i]); table.add(temp); }else { List<Integer> temp=new LinkedList<>(table.get(cur)); temp.add(nums[i]); table.add(temp); } } int mark=0; for(int i=0;i<table.size();i++){ if(table.get(i).size()>table.get(mark).size()){ mark=i; } } return table.get(mark); }}
新闻热点
疑难解答