首页 > 学院 > 开发设计 > 正文

leetcode 368. Largest Divisible Subset

2019-11-06 06:17:14
字体:
来源:转载
供稿:网友

这题也挺难的(可能是因为我是彩笔),吃早饭的时候一直在想。。想了好久

然后看了一眼提示,如果一个数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);    }}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表