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

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

题目:

题解:

class Solution {
public:vector<int> largestDivisibleSubset(vector<int>& nums) {int len = nums.size();sort(nums.begin(), nums.end());// 第 1 步:动态规划找出最大子集的个数、最大子集中的最大整数vector<int> dp(len, 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] = max(dp[i], dp[j] + 1);}}if (dp[i] > maxSize) {maxSize = dp[i];maxVal = nums[i];}}// 第 2 步:倒推获得最大子集vector<int> res;if (maxSize == 1) {res.push_back(nums[0]);return res;}for (int i = len - 1; i >= 0 && maxSize > 0; i--) {if (dp[i] == maxSize && maxVal % nums[i] == 0) {res.push_back(nums[i]);maxVal = nums[i];maxSize--;}}return res;}
};

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

相关文章:

  • idea git使用
  • 探索大语言模型在DNA 分析到表达预测以及生物信息学应用
  • Tutorial:Deep Learning for Remote Sensing Data
  • TD学习笔记————中级教程总结(上)
  • P2P 文件共享:现代网络中的高效文件传输
  • Leetcode 104. 二叉树的最大深度 C++实现
  • 哈夫曼树编码实现
  • PD取电快充协议方案
  • 使用C++和JUCE开发一个简单的音频插件
  • SpringBoot入门
  • django学习入门系列之第十点《初识 django》
  • Linux下快速搭建七日杀官方私人服务器教程
  • React antd Table表格动态合并单元格
  • 全网最适合入门的面向对象编程教程:37 Python常用复合数据类型-列表和列表推导式
  • Oracle 的DBA有哪些权限
  • GPT-4o语音功能潜在风险分析与技术挑战
  • 只用一个 HTML 元素可以写出多少形状?——伪元素篇(下)
  • 【大前端】VUE使用TSX、JSX
  • jvm调优
  • vllm 部署GLM4模型进行 Zero-Shot 文本分类实验,让大模型给出分类原因,准确率可提高6%