leetCode-Record icon indicating copy to clipboard operation
leetCode-Record copied to clipboard

175周周赛第三题推文计数

Open fireairforce opened this issue 5 years ago • 0 comments

发现提前处理一下是可以不被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)
 */

fireairforce avatar Feb 18 '20 12:02 fireairforce