成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

359. Logger Rate Limiter & 362. Design Hit Cou

go4it / 1226人閱讀

摘要:題目鏈接和基本一樣,都可以用,但是大了之后會(huì)有很多無效的時(shí)間保存在里面,要的話,可能需要遍歷或者用輔助,時(shí)間復(fù)雜度超過,所以用一個(gè)來做,每次根據(jù)新的改變。

359. Logger Rate Limiter

題目鏈接:https://leetcode.com/problems...

和Design Hit Counter基本一樣,都可以用hashmap,但是timestamp大了之后會(huì)有很多無效的時(shí)間保存在hashmap里面,要remove的話,可能需要遍歷hashmap或者用list輔助,時(shí)間復(fù)雜度超過O(1),所以用一個(gè)rotate array來做,每次根據(jù)新的timestamp改變array。

public class Logger {
    Set[] record;
    int[] times;
    public Logger() {
        record = new Set[10];
        for(int i = 0; i < record.length; i++) record[i] = new HashSet();
        times = new int[10];
        Arrays.fill(times, -10);
    }
    
    /** Returns true if the message should be printed in the given timestamp, otherwise returns false.
        If this method returns false, the message will not be printed.
        The timestamp is in seconds granularity. */
    public boolean shouldPrintMessage(int timestamp, String message) {
        for(int i = 0; i < times.length; i++) {
            if(timestamp - times[i] < 10 && record[i].contains(message)) {
                return false;
            }
        }
        int index = timestamp % 10;
        if(timestamp - times[index] >= 10) {
            // rotate
            times[index] = timestamp;
            record[index] = new HashSet();
        }
        record[index].add(message);
        return true;
    }
}
362. Design Hit Counter

題目鏈接:https://leetcode.com/problems...

public class HitCounter {

    /** Initialize your data structure here. */
    int[] times;
    int[] hits;
    public HitCounter() {
        times = new int[300];
        hits = new int[300];
    }
    
    public void hit(int timestamp) {
        if(times[timestamp%300] != timestamp) {
            times[timestamp%300] = timestamp;
            hits[timestamp%300] = 1;
        }
        else hits[timestamp%300]++;
    }
    
    /** Return the number of hits in the past 5 minutes.
        @param timestamp - The current timestamp (in seconds granularity). */
    public int getHits(int timestamp) {
        int count = 0;
        for(int i = 0; i < 300; i++) {
            if(timestamp - times[i] < 300) {
                count += hits[i];
            }
        }
        return count;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66646.html

相關(guān)文章

  • 使用Envoy 作Sidecar Proxy的微服務(wù)模式-5.rate limiter

    摘要:為安裝過濾器的偵聽器上的每個(gè)新請(qǐng)求調(diào)用服務(wù),路由表指定應(yīng)調(diào)用服務(wù)。使用了令牌桶算法來限流。 本博客是深入研究Envoy Proxy和Istio.io 以及它如何實(shí)現(xiàn)更優(yōu)雅的方式來連接和管理微服務(wù)系列文章的一部分。 這是接下來幾個(gè)部分的想法(將在發(fā)布時(shí)更新鏈接): 斷路器(第一部分) 重試/超時(shí)(第二部分) 分布式跟蹤(第三部分) Prometheus的指標(biāo)收集(第四部分) rate ...

    CocoaChina 評(píng)論0 收藏0
  • Spring Cloud Gateway限流實(shí)戰(zhàn)

    摘要:歡迎訪問我的歡迎訪問我的內(nèi)容所有原創(chuàng)文章分類匯總及配套源碼,涉及等本篇概覽本篇概覽本文是實(shí)戰(zhàn)系列的第八篇,經(jīng)過前面的學(xué)習(xí),咱們對(duì)過濾器已了解得差不多,今天來補(bǔ)全過濾器的最后一個(gè)版塊限流默認(rèn)的限流器是基于實(shí)現(xiàn)的,限流算法是大家熟悉的令牌桶關(guān)于歡迎訪問我的GitHubhttps://github.com/zq2599/blog_demos內(nèi)容:所有原創(chuàng)文章分類匯總及配套源碼,涉及Java、Doc...

    stonezhu 評(píng)論0 收藏0
  • Sails.js 內(nèi)存暴漲 &amp; 源碼分析

    摘要:是下的一個(gè)優(yōu)秀的框架,但是使用后,在流量增長(zhǎng)時(shí),進(jìn)程有時(shí)突然內(nèi)存暴漲保持高占用。如果是內(nèi)存泄露引起的,則需要細(xì)心檢查代碼,確定變量能正?;厥?。每個(gè)對(duì)象有自己產(chǎn)生的內(nèi)存。譯注但是大對(duì)象內(nèi)存區(qū)本身不是可執(zhí)行的內(nèi)存區(qū)。 Sails.js 是 node 下的一個(gè)優(yōu)秀的 MVC 框架,但是使用 Sails 后,在流量增長(zhǎng)時(shí), node 進(jìn)程有時(shí)突然內(nèi)存暴漲、保持高占用。經(jīng)過翻閱源碼后,發(fā)現(xiàn)這個(gè)問...

    antz 評(píng)論0 收藏0
  • python前后文管理工具合同的完成

      本文關(guān)鍵闡述了python前后文管理工具合同的完成,在python中所有完成了前后文管理工具協(xié)議書目標(biāo)都能用應(yīng)用with實(shí)際操作,with開啟了目標(biāo)前后文管理工具  序言  在前后文管理工具協(xié)議書的過程當(dāng)中,牽涉到2個(gè)魔術(shù)師方式__enter__方法與__exit__方式  在python中所有完成了前后文管理工具協(xié)議書目標(biāo)都能用應(yīng)用with實(shí)際操作  with開啟了目標(biāo)前后文管理工具  前后...

    89542767 評(píng)論0 收藏0
  • 接口限流算法:漏桶算法&amp;令牌桶算法

    摘要:令牌桶算法漏桶算法漏桶漏桶的出水速度是恒定的,那么意味著如果瞬時(shí)大流量的話,將有大部分請(qǐng)求被丟棄掉也就是所謂的溢出。 工作中對(duì)外提供的API 接口設(shè)計(jì)都要考慮限流,如果不考慮限流,會(huì)成系統(tǒng)的連鎖反應(yīng),輕者響應(yīng)緩慢,重者系統(tǒng)宕機(jī),整個(gè)業(yè)務(wù)線崩潰,如何應(yīng)對(duì)這種情況呢,我們可以對(duì)請(qǐng)求進(jìn)行引流或者直接拒絕等操作,保持系統(tǒng)的可用性和穩(wěn)定性,防止因流量暴增而導(dǎo)致的系統(tǒng)運(yùn)行緩慢或宕機(jī)。 在開發(fā)高并發(fā)...

    dendoink 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<