zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【leetcode周赛记录】第291场周赛记录

LeetCode 记录 周赛
2023-09-11 14:20:02 时间

赛后个人排名

leetcode个人资料
在这里插入图片描述

赛题分析总结

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分;

后续改进

  1. 回溯的子集问题复习以及暴力模拟+哈希表去重