讨论/题目交流/🏆 第 175 场力扣周赛/
🏆 第 175 场力扣周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛】

image.png

3 分 - 检查整数及其两倍数是否存在
4 分 - 制造字母异位词的最小步骤数
5 分 - 推文计数
7 分 - 参加考试的最大学生数

第三题可以用 Ordered Map:

class TweetCounts {
private:
    map<int, unordered_map<string, int>> dict;
public:
    TweetCounts() {
        
    }
    
    void recordTweet(string tweetName, int time) {
        dict[time][tweetName]++;
    }
    
    vector<int> getTweetCountsPerFrequency(string freq, string tweetName, int startTime, int endTime) {
        const vector<int> duration = {60, 3600, 86400};
        int freqType;
        if(freq == "minute")
            freqType = 0;
        else if(freq == "hour")
            freqType = 1;
        else if(freq == "day")
            freqType = 2;
        vector<int> res;
        for(int i=startTime; i<endTime+1; i+=duration[freqType]) {
            int count = 0;
            if(dict.count(i) == 0)
                dict[i][tweetName] = 0;
            auto it = dict.find(i);
 
            while(it != dict.end() && it->first < min(i + duration[freqType], endTime + 1)) {
                count += it->second[tweetName];
                ++it;
            }
            res.push_back(count);
        }
        
        return res;
    }
};
展开全部 42 讨论