LeetCode Weekly Contest 175 3問目 - Tweet Counts Per Frequency [1348]

Source

LeetCode Weekly Contest 175
問題文

問題概要

省略

解法

省略

cLayversion 20200214-1)のコード

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

#define main dummy_main
{}
#undef main

int user;
map<string,int> id;
vector<int> tweet[10000];
int sorted[10000];

class TweetCounts {
public:
  TweetCounts() {
    user = 0;
    id.clear();
  }

  int getID(string name){
    if(!id.count(name)){
      tweet[user].clear();
      sorted[user] = 1;
      id[name] = user++;
    }
    return id[name];
  }

  void recordTweet(string name, int tm) {
    int id = getID(name);
    tweet[id].push_back(tm);
    sorted[id] = 0;
  }

  vector<int> getTweetCountsPerFrequency(string freq, string name, int st, int et) {
    int id = getID(name);
    int i, n, delta;
    vector<int> res;
    et++;
    if(sorted[id]==0){
      sorted[id] = 1;
      sort(tweet[id].begin(), tweet[id].end());
    }
    if(freq == "minute") delta = 60;
    if(freq == "hour") delta = 60*60;
    if(freq == "day") delta = 60*60*24;

    i = lower_bound(tweet[id].begin(), tweet[id].end(), st) - tweet[id].begin();
    while(st < et){
      n = 0;
      st = min(st+delta, et);
      while(i < tweet[id].size() && tweet[id][i] < st) i++, n++;
      res.push_back(n);
    }

    return res;
  }
};

Current time: 2024年04月24日23時04分53秒
Last modified: 2020年02月16日01時26分50秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: