当前位置: 首页 > news >正文

Java | Leetcode Java题解之第368题最大整除子集

题目:

题解:

class Solution {public List<Integer> largestDivisibleSubset(int[] nums) {int len = nums.length;Arrays.sort(nums);// 第 1 步:动态规划找出最大子集的个数、最大子集中的最大整数int[] dp = new int[len];Arrays.fill(dp, 1);int maxSize = 1;int maxVal = dp[0];for (int i = 1; i < len; i++) {for (int j = 0; j < i; j++) {// 题目中说「没有重复元素」很重要if (nums[i] % nums[j] == 0) {dp[i] = Math.max(dp[i], dp[j] + 1);}}if (dp[i] > maxSize) {maxSize = dp[i];maxVal = nums[i];}}// 第 2 步:倒推获得最大子集List<Integer> res = new ArrayList<Integer>();if (maxSize == 1) {res.add(nums[0]);return res;}for (int i = len - 1; i >= 0 && maxSize > 0; i--) {if (dp[i] == maxSize && maxVal % nums[i] == 0) {res.add(nums[i]);maxVal = nums[i];maxSize--;}}return res;}
}

http://www.mrgr.cn/news/7511.html

相关文章:

  • ant design pro access.ts 是如何控制多角色的权限的
  • 设计模式 5 原型模式
  • 机械学习—零基础学习日志(如何理解概率论6)
  • Java集合框架--LIST,ArrayList,LinkedList
  • 使用Jupyter Notebook实现Python编程
  • 关于类加载的问题
  • shallowReactive 与 shallowRef
  • 大数据-91 Spark 集群 RDD 编程-高阶 RDD广播变量 RDD累加器 Spark程序优化
  • linux系统编程:网络通信
  • 智能开发工具GoLand v2024.2全新发布——更好地支持Go框架和语言
  • 飞书应用机器人文件上传
  • 学习笔记 韩顺平 零基础30天学会Java(2024.8.24)
  • Vue3源码调试-第一篇
  • Java 3.1 - 计算机网络
  • 【办公软件】安全风险 Microsoft 已阻止宏运行,因为此文件的来源不受信任
  • go-zero接入skywalking链路追踪
  • vue3 生命周期钩子
  • 剧本杀门店预约小程序,提高消费者体验
  • Elasticsearch8.15 springboot配置类简单解释
  • “深度学习之旅:TensorFlow 框架全解析与实战应用“