摘要:前言的第一題最近的請求次數寫一個類來計算最近的請求。返回從毫秒前到現在的數。示例輸入輸出提示每個測試用例最多調用次。實現代碼最近的請求次數存儲時間的最小有效時間的索引從開始遍歷判斷最小的有效時間是否無效返回有效的元素個數
前言
Weekly Contest 109的第一題 最近的請求次數:
解題思路寫一個 RecentCounter 類來計算最近的請求。
它只有一個方法:ping(int t),其中 t 代表以毫秒為單位的某個時間。
返回從 3000 毫秒前到現在的 ping 數。
任何處于 [t - 3000, t] 時間范圍之內的 ping 都將會被計算在內,包括當前(指 t 時刻)的 ping。
保證每次對 ping 的調用都使用比之前更大的 t 值。
示例:
輸入:inputs = ["RecentCounter","ping","ping","ping","ping"], inputs = [[],[1],[100],[3001],[3002]] 輸出:[null,1,2,3,3]提示:
每個測試用例最多調用 10000 次 ping。
每個測試用例會使用嚴格遞增的 t 值來調用 ping。
每次調用 ping 都有 1 <= t <= 10^9。
本題其實并不復雜,但是我在實現時由于思考的方向錯了,導致了花費大量時間去完成這個題目。
一開始我的思路是仿照LRU算法,實現一個會移除超出有效范圍[t - 3000, t]的緩存。
但是隨著不斷的嘗試后,發現其實只需要統計時有效的ping即可。期間遇到過好幾次執行超時的情況,所以需要優化統計有效ping時的檢索區間。
所以最終實現思路如下:
需要一個存儲所有ping時間的數組list和記錄最小有效ping時間的list索引minIndex
每次ping就從minIndex開始檢索list,直到遇到數組list中的ping時間item有效(即item在[t - 3000, t])則中斷循環,否則(item
/** * 933. 最近的請求次數 * @author RJH * create at 2018/11/4 */ public class RecentCounter { /** * 存儲ping時間的List */ private Listlist; /** * 最小有效ping時間的索引 */ private int minIndex=0; public RecentCounter() { list=new LinkedList<>(); } public int ping(int t) { list.add(t); for(int i=minIndex;i
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71997.html
摘要:題目鏈接題目分析這個題目說實在的,看得我一臉蒙蔽。返回自毫秒到現在為止的次數包括當前。調函數時,傳入的參數為當前的毫秒數。思路其實是說,返回前毫秒內的次數。最終代碼若覺得本文章對你有用,歡迎用愛發電資助。 D50 933. Number of Recent Calls 題目鏈接 933. Number of Recent Calls 題目分析 這個題目說實在的,看得我一臉蒙蔽。 返回自...
摘要:題目地址題目描述寫一個類來計算最近的請求。它只有一個方法,其中代表以毫秒為單位的某個時間。返回從毫秒前到現在的數。任何處于時間范圍之內的都將會被計算在內,包括當前指時刻的。并且刪除要用迭代器來刪除,否則會引發。 題目地址:https://leetcode-cn.com/probl...題目描述:寫一個 RecentCounter 類來計算最近的請求。 它只有一個方法:ping(int ...
今天我們講講JavaScript隊列數據結構詳解。 什么是隊列? 隊列是一種先進先出的數據結構,隊列有兩種操作:插入和刪除;入隊和出隊。簡單來說就是允許插入的一端稱為隊尾、允許刪除的一端稱為隊頭; 如下圖展示了棧這個數據結構: JavaScript中的隊列 要知道JavaScript中沒有有關隊列的數據模型,因此我們需要通過數組進行模擬,當數組中提供的push()和shift()選...
摘要:每個請求來的時候都會先去看看中有沒有,即使使用的是的方式也不免會讓我對它的性能產生一些擔憂,所以性能測試就必須要來一發了。注也在阿里云執行只要是為了在一個數據中心降低網絡延遲。測試因為考慮到服務器比較穩定,減少壓測總數。 背景 最近我操刀了leetcode的論壇遷移,整個過程持續了幾周的時間,總算暫時告了一個段落。常使用leetcode論壇的用戶應該已經發現論壇已經大變樣了吧~ 期間遇...
摘要:每個請求來的時候都會先去看看中有沒有,即使使用的是的方式也不免會讓我對它的性能產生一些擔憂,所以性能測試就必須要來一發了。注也在阿里云執行只要是為了在一個數據中心降低網絡延遲。測試因為考慮到服務器比較穩定,減少壓測總數。 背景 最近我操刀了leetcode的論壇遷移,整個過程持續了幾周的時間,總算暫時告了一個段落。常使用leetcode論壇的用戶應該已經發現論壇已經大變樣了吧~ 期間遇...
閱讀 3590·2023-04-25 20:41
閱讀 2676·2023-04-25 16:40
閱讀 1446·2021-09-23 11:44
閱讀 1265·2021-09-10 10:51
閱讀 1695·2021-09-07 09:59
閱讀 1681·2019-12-27 12:08
閱讀 574·2019-08-30 15:44
閱讀 3346·2019-08-30 11:08