# Leetcode 1470 Solution

https://leetcode.com/problems/tweet-counts-per-frequency

## Solution

``````class TweetCounts {
map<std::string, map<int, int>> tweets;

public:
TweetCounts() {
}

void recordTweet(string tweetName, int time) {
tweets[tweetName][time] += 1;
}

vector<int> getTweetCountsPerFrequency(string freq, string tweetName, int startTime, int endTime) {
auto& tweetsForName = tweets[tweetName];
int seclen = 0;

if (freq == "minute")
seclen = 60;
else if (freq == "hour")
seclen = 3600;
else if (freq == "day")
seclen = 86400;

int sec_start_time = startTime;
int sec_cnt = 0;
vector<int> ans;

for (auto it = tweetsForName.lower_bound(startTime); it != tweetsForName.end(); it++)
{
if (it->first > endTime)
break;

while (it->first >= sec_start_time + seclen)
{
ans.push_back(sec_cnt);

sec_start_time += seclen;
sec_cnt = 0;
}

sec_cnt += it->second;
}

while (sec_start_time <= endTime)
{
ans.push_back(sec_cnt);
sec_start_time += seclen;
sec_cnt = 0;
}

return ans;
}
};

/**
* Your TweetCounts object will be instantiated and called as such:
* TweetCounts* obj = new TweetCounts();
* obj->recordTweet(tweetName,time);
* vector<int> param_2 = obj->getTweetCountsPerFrequency(freq,tweetName,startTime,endTime);
*/
``````