【leetcode周赛记录】第291场周赛记录
赛后个人排名
赛题分析总结
6047.移除指定数字得到的最大结果
class Solution {
public:
// 模拟即可
string removeDigit(string number, char digit) {
vector<string> unSet;
for(int i{};i<number.size();++i){
if(number[i] == digit){
string temp = number;
temp.erase(temp.begin()+i);
unSet.push_back(temp);
}
}
sort(unSet.begin(),unSet.end());
int n = unSet.size();
return unSet[n-1];
}
};
6048.必须拿起的最小连续卡牌数
class Solution {
public:
// 双指针、滑动窗口问题
int minimumCardPickup(vector<int>& cards) {
int result{INT_MAX};
unordered_map<int,int> unMap;
unMap[cards[0]]++;
int left{},right{1};
for(right = 1;right < cards.size();++right){
unMap[cards[right]]++;
while(unMap[cards[right]] == 2){
result = min(right - left + 1,result);
unMap[cards[left++]]--;
}
}
return result == INT_MAX ? -1 : result;
}
};
6049.含最多K个可整除元素的子数组
class Solution {
public:
// 比赛过程中认为这是一道回溯解子集题目,解不出来
// 实际是暴力模拟+哈希表去重,是我想太多
int countDistinct(vector<int>& nums, int k, int p) {
set<vector<int>> s;
vector<int> v;
for(int i{};i<nums.size();++i){
v.clear();
int count{};
for(int j = i;j<nums.size();++j){
v.push_back(nums[j]);
if(nums[j] %p == 0){
count++;
if(count > k) break;
}
s.insert(v);
}
}
return s.size();
}
};
6050.字符串的总引力
第四题,直接忽视,嘿嘿
反思总结
个人情况
第26次参加leetcode竞赛;
总计得到过6次12分,11次7分,9次3分;
后续改进
- 回溯的子集问题复习以及暴力模拟+哈希表去重