[leetcode] 368. Largest Divisible Subset 解题报告

news/2024/9/8 3:48:26/

题目链接: https://leetcode.com/problems/largest-divisible-subset/

Given a set of distinct positive integers, find the largest subset such that every pair (Si, Sj) of elements in this subset satisfies: Si % Sj = 0.

If there are multiple solutions, return any subset is fine.

Example 1:

nums: [1,2,3]Result: [1,2] (of course, [1,3] will also be ok)

Example 2:

nums: [1,2,4,8]Result: [1,2,4,8]

思路: 可以用动态规划来解决. 为了使得问题可以转化为子问题, 最好将数组按照降序来排列, 然后当nums[j]%nums[i]==0的时候就可以得到一个状态转移方程dp[i] = max(dp[i], dp[j]+1), 因为数组按照降序排序, 所以nums[i] < nums[j],并且之前能够被nums[j]整除的数, 也必然能够别nums[i]整除, 这就保证了状态转移方程的正确性. 

他还要求找出最大结果, 所以我们还需要记录一下路径, 每一个数字, 我们记录一个第一个能够使其到达最大长度的父结点, 最后回溯一下即可.

代码如下:

class Solution {
public:vector<int> largestDivisibleSubset(vector<int>& nums) {if(nums.size() ==0) return {}; sort(nums.begin(), nums.end(), greater<int>());int len = nums.size(), curMax=1, k=0;vector<int> par(len), dp(len, 1), result;for(int i =0; i < len; i++) par[i] = i;for(int i =1; i < len; i++){for(int j =0; j < i; j++){if(nums[j]%nums[i]!=0) continue;if(dp[i] < dp[j]+1) par[i] = j, dp[i]=dp[j]+1;if(dp[i] > curMax) curMax = dp[i], k = i;}}while(par[k] != k){result.push_back(nums[k]);k = par[k];}result.push_back(nums[k]);return result;}
};



http://www.ppmy.cn/news/361678.html

相关文章

368-C++基础语法(1-10)

1、 在main执行之前和之后执行的代码可能是什么&#xff1f; 1.1 main函数执行之前 设置栈指针初始化静态static变量和global全局变量&#xff0c;即.data段的内容将未初始化部分的全局变量赋初值&#xff1a;数值型short&#xff0c;int&#xff0c;long等为0&#xff0c;bo…

飞础科热成像仪368产品性能应用介绍

FOTRIC 360系列拥有手自一体热像镜头&#xff0c;可随时切换一键快速自动对焦或手动调节&#xff1b;180可旋转镜头的设计&#xff0c;更易于瞄准和观察&#xff0c;能够应对各种观察角度&#xff0c;且长期使用不易疲劳。 屏幕采用5.5英寸OLED超高清触摸显示屏&#xff0c;能够…

358.com

358.com谁都不会相信这个域名就这样过期了。360创造了域名的神价&#xff0c;358.com会值多少&#xff1f;没人知道。可惜这位米主&#xff0c;怎么就忘记续费了呢&#xff1f;358.com&#xff0c;在删除之后被SnapNames平台抢注&#xff0c;据说最后竞拍价&#xff1a;1007088…

368-boost库和muduo库的安装(Ubuntu)

muduo库是基于boost开发的&#xff0c;所以需要先在Linux平台上安装boost库。 boost库的安装 Boost::asio还没有正式的成为C标准库&#xff0c;因此如果使用Boost::asio进行网络I/O编程&#xff0c;需要先在当前系统平台上&#xff08;linux&#xff09;安装boost库相关的头文…

力扣(LeetCode)368. 最大整除子集(2023.01.03)

给你一个由 无重复 正整数组成的集合 nums &#xff0c;请你找出并返回其中最大的整除子集 answer &#xff0c;子集中每一元素对 (answer[i], answer[j]) 都应当满足&#xff1a; answer[i] % answer[j] 0 &#xff0c;或 answer[j] % answer[i] 0 如果存在多个有效解子集&a…

【博客368】HTTP常见状态码

内容&#xff1a; 记录http常见状态码 5XX系列&#xff1a; 500 Internal Server Error 意味着所请求的服务器遇到意外的情况并阻止其执行请求。 这个错误代码是一个比较通用的“万能”响应代码。501 Not Implemented 请求的方法不被服务器支持&#xff0c;因此无法被处理。只…

leetcode.368. 最大整除子集----使用dp来进行哈希思想的映射便于求解

368. 最大整除子集 给你一个由 无重复 正整数组成的集合 nums &#xff0c;请你找出并返回其中最大的整除子集 answer &#xff0c;子集中每一元素对 (answer[i], answer[j]) 都应当满足&#xff1a; answer[i] % answer[j] 0 &#xff0c;或 answer[j] % answer[i] 0 如果存…

LeetCode——368. 最大整除子集(Largest Divisible Subset)[中等]——分析及代码(Java)

LeetCode——368. 最大整除子集[Largest Divisible Subset][中等]——分析及代码[Java] 一、题目二、分析及代码1. 动态规划&#xff08;1&#xff09;思路&#xff08;2&#xff09;代码&#xff08;3&#xff09;结果 三、其他 一、题目 给你一个由 无重复 正整数组成的集合…

玉米关联群体:155、368、527 自交系群体简介(Yan Jianbing,2010、2013)

本文将以此介绍 3 个关联分析资源群体&#xff0c;群体大小分别为 155、368、527。155 和 527 两个群体交集为 141&#xff0c;使用的 SNP 芯片一致&#xff0c;可以认为 527 是 155 群体的拓展。368 和 527 两个群体交集为 282&#xff0c;其中 368 使用 RNA-seq 测序&#xf…

全国PMO专业人士年度盛会︱2023第十二届中国PMO大会会议日程

由PMO评论主办的第十二届中国PMO大会拟定于2023年8月12-13日在北京召开&#xff0c;本次大会主题为&#xff1a;“拥抱变革 展现PMO力量”&#xff0c;将特邀知名企业卓有建树的PMO实践精英来演讲&#xff0c;交流经验分享智慧&#xff0c;推动PMO在变革中不断成长、进化&#…

OpenCV每日函数 基于OpenCV的对象追踪算法综述及代码示例

一、关于对象跟踪 1、跟踪简述 跟踪物体的运动有许多应用,从仓库中的跟踪机器人到在无人机中实施对象跟踪系统。对象跟踪的基础知识依赖于对象检测,但在这种情况下,对象是从不同的角度查看的,在某些情况下可能看起来完全不同。 对象跟踪是增强现实中流行的一种重要的计算机…

STL之list

目录 list模拟实现一. list的基本框架二. list_node类1.构造函数2.其他函数 三. 迭代器&#xff08;iterator&#xff09;1.结构2. 构造函数3. 运算符重载operator-> 四.反向迭代器1.结构2.构造函数3.运算符重载 五. list常用方法及实现1. 默认构造函数a.empty_init 2.迭代器…

阿里P8传授的80K+星的MySQL笔记助我修行,一周快速进阶

MySQL 是最流行的关系型数据库之一&#xff0c;广泛的应用在各个领域。下面这些问题对于程序员的你来说应该很常见&#xff0c;来看看你面对这些问题是否会胆怯? MySQL数据库作发布系统的存储&#xff0c;一天五万条以上的增量&#xff0c;预计运维三年,怎么优化&#xff1f; …

QT--Opencv图片处理

提示&#xff1a;本文为学习记录&#xff0c;若有疑问&#xff0c;请联系作者。 文章目录 前言一、读取照片二、保存照片三、图像算法1.高斯滤波2.均值滤波3.中值滤波4.双边滤波5.其他操作 四、插值算法五、Mat和QImage互转1.Mat转QImage2.QImage转Mat 六、总结 前言 忙碌里寻…

啥?PCB拼版对SMT组装有影响!

PCB为什么要拼版&#xff1f; 拼版主要是为了满足生产的需求&#xff0c;有些PCB板太小&#xff0c;不满足做夹具的要求&#xff0c;所以需要拼在一起进行生产。 拼版也可以提高SMT贴片的焊接效率&#xff0c;如只需要过一次SMT&#xff0c;即可完成多块PCB的焊接。 同时也可…

神奇宝贝HTML游戏代码,口袋妖怪魂银金手指代码

口袋妖怪魂银金手指代码是一款全新口袋妖怪推出的RPG动作手游&#xff0c;全新的捕获体验&#xff0c;同是在这里大家可以更加完善的完成每一次的精灵捕获体验&#xff0c;玩法非常的轻松简单&#xff0c;大量不同的任务等待着你来解锁挑战&#xff0c;喜欢的小伙伴们快来下载吧…

生活有时候还是需要点这个的

1、乌龟正在河里洗澡被癞蛤蟆看见了&#xff0c; 乌龟&#xff1a;没见过像我这样的美女吗&#xff1f;看你眼珠子都快要蹦出来了。 癞蛤蟆&#xff1a;妹&#xff0c;你就别逗我了&#xff0c;没有看见我身上已经起鸡皮疙瘩了吗&#xff1f; 2、黄莺看到在寻食的黄鼠狼说&…

【程序猿的小幽默】

在论坛里看到的&#xff0c;感觉很有意思&#xff0c;所以转载过来了&#xff0c;不知道未经许可这样做好不好&#xff0c;附上原地址&#xff1a; http://bbs.csdn.net/topics/390767610 1.老婆给当程序员的老公打电话&#xff1a;下班顺路买十个包子&#xff0c;如果看到卖西…

[六点]Pygame零基础入门:极简开发框架

[六点]Pygame零基础入门&#xff1a;极简开发框架 参考 Pygame官方文档 嵩天教授的Python游戏开发教程 前言 在入门游戏开发时&#xff0c;pygame框架可以快速协助开发小型游戏。轻松而愉快的开始是从玩游戏到做游戏的关键&#xff0c;游戏的设计思想是游戏娱乐性的核心&am…

[转][darkbaby]任天堂传——失落的泰坦王朝(下)

即使是日本业界人士也对1999年发生的“口袋妖怪所有权风波”知之甚少&#xff0c;实际上这个事件的结局足以改变游戏产业未来数十年的势力图&#xff0c;山内溥凭借着个人的睿智让任天堂再次渡过了命运的暗礁&#xff0c;而另一颗曾经炙手可热的璀璨明星却从此销声匿迹…… 株式…