這題也挺難的(可能是因為我是彩筆),吃早飯的時候一直在想。。想了好久
然后看了一眼提示,如果一個數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); }}
新聞熱點
疑難解答