5516. 警告一小时内使用相同员工卡大于等于三次的人

Posted shuibeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5516. 警告一小时内使用相同员工卡大于等于三次的人相关的知识,希望对你有一定的参考价值。

技术图片
技术图片

class Solution {
public:
    vector<string> alertNames(vector<string>& keyName, vector<string>& keyTime) {
        map<string, set<string> > mp;
        int n = keyName.size();
        for(int i  = 0;i < n;i++) mp[keyName[i]].insert(keyTime[i]);
        vector<string> ans;
        for(auto p : mp){
            string name = p.first;
            if(check(p.second)) ans.push_back(name);
        }
        return ans;
    }
private:
    bool check(set<string> p){
        if(p.size()<=2) return false;
        vector<string> v(p.begin(),p.end());
        for(auto i = 0;i+2<v.size();i++){
            if(checkTime(v[i],v[i+2])) return true;
        }
        return false;
    }
    bool checkTime(string l,string r){
        int s = getTime(l);
        int e = getTime(r);
        if(e-s<=60) return true;
        return false;
    }
    int getTime(string s){
        int ans = 0;
        ans =atoi(s.substr(0,2).c_str())*60+atoi(s.substr(3,2).c_str());
        return ans;
    }
};

以上是关于5516. 警告一小时内使用相同员工卡大于等于三次的人的主要内容,如果未能解决你的问题,请参考以下文章

算法训练 薪水计算

bzoj3648: 寝室管理(环套树+点分治)

mysql 判断时间大于24小时

latex中数学符号 约等于 怎么输入??

「考试」省选50

最佳牛围栏