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