5234. 移除字母异位词后的结果数组
class Solution {
public:
vector<string> removeAnagrams(vector<string>& s) {
vector<string>res;
res.push_back(s[0]);
for(int i=1;i<s.size();i++)
{
string a=s[i-1],b=s[i];
sort(a.begin(),a.end());
sort(b.begin(),b.end());
if(a==b)continue;
res.push_back(s[i]);
}
return res;
}
};
6064. 不含特殊楼层的最大连续楼层数
class Solution {
public:
int maxConsecutive(int l, int r, vector<int>& a) {
sort(a.begin(),a.end());
int res=0;
res=max(a[0]-l,r-a.back());
for(int i=1;i<a.size();i++)
res=max(a[i]-a[i-1]-1,res);
return res;
}
};
6065. 按位与结果大于零的最长组合
class Solution {
public:
int largestCombination(vector<int>& a) {
int res=0;
for(int i=0;i<24;i++)
{
int cnt=0;
for(auto x : a)
{
if(x>>i&1)
cnt++;
}
res=max(res,cnt);
}
return res;
}
};
6066. 统计区间中的整数数目
class CountIntervals {
public:
int cnt;
set<pair<int,int>>s;
CountIntervals() {
cnt=0;
}
void add(int left, int right) {
auto it=s.lower_bound({left,left});
if(it!=s.begin())it--;
int l=left,r=right;
while(it!=s.end()&&it->first<=right)
{
if(it->second<left-1)
{
it++;
continue;
}
l=min(l,it->first);
r=max(r,it->second);
cnt-=it->second-it->first+1;
s.erase(*it);
it++;
}
s.insert({l,r});
cnt+=r-l+1;
}
int count() {
return cnt;
}
};
|