Re: [闲聊] 每日LeetCode

楼主: oin1104 (是oin的说)   2024-02-09 14:38:15
※ 引述 《Rushia (みけねこ的鼻屎)》 之铭言:
:  
: https://leetcode.com/problems/largest-divisible-subset/description
: 368. Largest Divisible Subset
: 给你一个阵列nums,找出由他的元素组成的最大子集合,所有元素满足
: nums[i] % nums[j] == 0 or nums[j] % nums[i] == 0,如果有多个解返回任意一个。
我的解法是n^2
先sort一下
用阵列的阵列当dp的东西
每次都会回头找能够整除的元素
然后找到拥有最长的阵列的元素
加上去
对每个元素做同样的事
接着再找最长的那个就是答案了
其实好像可以边找边做
这题有更快的解法吗
像是利用lis最长子字串的方法做
但是因为他是看能不能整除
所以好像不太可以?
姆咪
```cpp
class Solution {
public:
vector<int> largestDivisibleSubset(vector<int>& nums)
{
sort(nums.begin() , nums.end() , less());
int len = nums.size();
vector<int> res ;
vector<vector<int>> cnt(len , vector<int>());
for(int i = 0 ; i < len ; i ++)
{
int icnt = 1;
int ij = 0;
for(int j = i-1 ; j >= 0 ; j
作者: JIWP (JIWP)   2024-02-09 14:46:00
你好烂
作者: wu10200512 (廷廷)   2024-02-09 14:51:00
n^2烂吐了 过年停止内卷
楼主: oin1104 (是oin的说)   2024-02-09 14:57:00
可是n^2 赢70几趴欸 这题还有其他解法吗
作者: JIWP (JIWP)   2024-02-09 14:58:00
烂透了
作者: DJYOSHITAKA (Evans)   2024-02-09 15:01:00
单纯记下回头找到能整除写最长阵列的index,这样可以不用记整条*整除且最长
楼主: oin1104 (是oin的说)   2024-02-09 15:06:00
好像也不错

Links booklink

Contact Us: admin [ a t ] ucptt.com