LeetCode Biweekly Contest 36 2問目 - Alert Using Same Key-Card Three or More Times in a One Hour Period [1604]

Source

LeetCode Biweekly Contest 36
問題文

問題概要

省略

解法

省略

cLayversion 20201121-1)のコード

C++に変換後のコードはこちら

#define main dummy_main
{}
#undef main

map<string,int> id;
vector<int> arr[1d5];

class Solution {
public:
  vector<string> alertNames(vector<string>& keyName, vector<string>& keyTime) {
    int node = 0, i, j, k;
    vector<string> res;

    id.clear();
    rep(i,keyName.size()){
      if(id.count(keyName[i])==0){
        id[keyName[i]] = node;
        arr[node].clear();
        node++;
      }
      j = id[keyName[i]];
      k = atoi(keyTime[i].c_str()) * 60 + atoi(keyTime[i].c_str() + 3);
      arr[j].push_back(k);
    }

    for(auto p : id){
      i = p.second;
      if(arr[i].size() < 3) continue;
      sort(arr[i].begin(), arr[i].end());
      rep(j,2,arr[i].size()) if(arr[i][j] - arr[i][j-2] <= 60){
        res.push_back(p.first);
        break;
      }
    }

    sort(res.begin(), res.end());
    return res;
  }
};

Current time: 2024年04月26日07時16分15秒
Last modified: 2020年11月22日17時32分09秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: