leetCode-Record
leetCode-Record copied to clipboard
175周周赛第三题推文计数
发现提前处理一下是可以不被tle的。。
var TweetCounts = function() {
this.hash = [];
};
/**
* @param {string} tweetName
* @param {number} time
* @return {void}
*/
TweetCounts.prototype.recordTweet = function(tweetName, time) {
this.hash.push([tweetName,time]);
this.hash.sort((a,b)=>a[1] - b[1])
};
/**
* @param {string} freq
* @param {string} tweetName
* @param {number} startTime
* @param {number} endTime
* @return {number[]}
*/
TweetCounts.prototype.getTweetCountsPerFrequency = function(freq, tweetName, startTime, endTime) {
let time;
if(freq === 'minute') {
time = 60;
} else if(freq === 'hour') {
time = 60 * 60;
} else{
time = 60 * 60 * 24;
}
let res = [];
// 先筛选出符合条件的名字
let value = this.hash.filter((item) => item[0] === tweetName);
let judge = value.filter(item => {
return startTime <= item[1] && item[1] <= endTime
})
for(let i = startTime;i<=endTime;i+=time) {
let count = 0;
let a = i;
let b = Math.min(i+time,endTime + 1);
for(let item of judge) {
if(item[1]<b && item[1] >= a) {
count ++;
}
}
res.push(count);
}
return res;
};
/**
* Your TweetCounts object will be instantiated and called as such:
* var obj = new TweetCounts()
* obj.recordTweet(tweetName,time)
* var param_2 = obj.getTweetCountsPerFrequency(freq,tweetName,startTime,endTime)
*/