Re: [闲聊] 每日leetcode

楼主: sixB (6B)   2024-10-18 10:24:25
※ 引述《sixB (6B)》之铭言:
: 2044. or找最大 然后 conut
: ##ㄙ路
报搜好快可是不太能接受==
看一看发现拿东西感觉很背包
改dp
class Solution {
public:
int countMaxOrSubsets(vector<int>& nums) {
// find max
unordered_map<int, int> or_val_cnt;
// <or_val, cnt>
or_val_cnt[0] = 1;
int maxi = 0;
for(int i: nums){
maxi |= i;
unordered_map<int, int> new_cnt = or_val_cnt;
for(auto [val, cnt]: new_cnt){
or_val_cnt[ val | i ] += cnt;
}
}
return or_val_cnt[maxi];
}
};
用int arr比hashmap慢好多
因为num range很宽 可是len很小
刚刚看到一个佐助的solution用bitmask
太潮惹==

Links booklink

Contact Us: admin [ a t ] ucptt.com