博客
关于我
【java】368. 最大整除子集---使用动态规划,快速解决子问题!!!
阅读量:317 次
发布时间:2019-03-04

本文共 870 字,大约阅读时间需要 2 分钟。

给你一个由 无重复 正整数组成的集合 nums ,请你找出并返回其中最大的整除子集 answer ,子集中每一元素对 (answer[i], answer[j]) 都应当满足:

answer[i] % answer[j] == 0 ,或
answer[j] % answer[i] == 0
如果存在多个有效解子集,返回其中任何一个均可。

示例 1:

输入:nums = [1,2,3]

输出:[1,2]
解释:[1,3] 也会被视为正确答案。
示例 2:

输入:nums = [1,2,4,8]

输出:[1,2,4,8]

提示:

1 <= nums.length <= 1000

1 <= nums[i] <= 2 * 109
nums 中的所有整数 互不相同
在这里插入图片描述

代码:public List
largestDivisibleSubset(int[] nums) { List
list=new ArrayList
(); if(nums.length==0) { return list; } Arrays.sort(nums); //记录该元素整除元素的个数 int []dp=new int[nums.length]; //记录该元素整除最近的下一个元素的下标 int []index=new int[nums.length]; Arrays.fill(index,-1); int a=0; for(int i=0;i
dp[i]) { dp[i]++; index[i]=j; if(dp[i]>dp[a]) { a=i; } } } } while(a!=-1) { list.add(nums[a]); a=index[a]; } return list; }

转载地址:http://romq.baihongyu.com/

你可能感兴趣的文章
vue中接收后台的图片验证码并显示
查看>>
Vue入门学习笔记(1)
查看>>
趣谈win10常用快捷键
查看>>
数学建模更新12(数学线性规划模型1)
查看>>
Android,SharedPreferences的使用
查看>>
两款用于检测内存泄漏的软件
查看>>
王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
查看>>
IDEA出现问题:Received fatal alert: protocol_version 解决方案
查看>>
Airtest自动化测试 Docs airtest.core.android package
查看>>
JDK 内置的多线程协作工具类的使用场景
查看>>
Java 中哪些对象可以获取类对象
查看>>
11.2.6 时间值的小数秒
查看>>
Redis源码分析(七)--- zipmap压缩图
查看>>
自定义Hive Sql Job分析工具
查看>>
【MySQL】(九)触发器
查看>>
Oracle 11G环境配置
查看>>
【Python】(十二)IO 文件处理
查看>>
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
查看>>
师兄面试遇到这条 SQL 数据分析题,差点含泪而归!
查看>>
C语言的数值溢出问题(上)
查看>>