付費限定

系統設計: 最近幾筆的來電紀錄_Leetcode 精選75題解析

閱讀時間約 5 分鐘

題目敘述

題目會給我們一個定義好的類別和function介面,要求我們實作建構子和ping() function來滿足指定的需求。


RecentCounter類別的建構子

建構子應該初始化來電紀錄,內容為空(零筆資料)


int ping(int t)

t代表來電時刻,單位是毫秒millisecond。

ping() function 應該維護[t-3000, t]區間內的來電紀錄,並且返回總共有幾筆來電落在[t-3000, t]這個區間內。

題目還保證每一次呼叫, t值會逐漸遞增。


題目的原文敘述


測試範例

Example 1:

Input
["RecentCounter", "ping", "ping", "ping", "ping"]
[[], [1], [100], [3001], [3002]]
Output
[null, 1, 2, 3, 3]

Explanation
RecentCounter recentCounter = new RecentCounter();
recentCounter.ping(1); // requests = [1], range is [-2999,1], return 1
recentCounter.ping(100); // requests = [1, 100], range is [-2900,100], return 2
recentCounter.ping(3001); // requests = [1, 100, 3001], range is [1,3001], return 3
recentCounter.ping(3002); // requests = [1, 100, 3001, 3002], range is [2,3002], return 3

約束條件

Constraints:

  • 1 <= t <= 10^9

t值介於1~10^9之間。

  • Each test case will call ping with strictly increasing values of t.

每次呼叫ping()時,t值會逐漸遞增。

  • At most 10^4 calls will be made to ping.

動態測試時,最多有10^4次 ping() function呼叫。


演算法

題目給了一個很強的條件,每次呼叫ping()時,t值會逐漸遞增。

另一方面,又要求維護[t-3000, t]區間內的來電紀錄,並且返回總共有幾筆來電落在[t-3000, t]這個區間內。

以行動支持創作者!付費即可解鎖
本篇內容共 2084 字、1 則留言,僅發佈於Leetcode精選75題 解析+統整你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
avatar-img
89會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
題目敘述 題目會給定一個輸入字串s和一套編碼規則,要求我們針對字串s進行解碼,並且以字串的形式返回答案。 編碼規則: 數字[字串] -> []內的字串以對應倍數做展開,而且允許巢狀編碼。 例如: 3[a] 解碼完就是 aaa 2[bc] 解碼完就是 bcbc 2[a2[b]] = 2
題目敘述 題目會給定我們一個二維陣列,要求我們計算內部元素相同的column row pairs總共有多少條? 註: pair的定義就是row i 和 column j 彼此內部元素值都相同,這樣就算一條pair。 題目的原文敘述 測試範例 Example 1: Input: gr
題目敘述 題目會給定我們一個整數陣列asteroids,每個元素代表每顆星球的大小和飛行方向。 絕對值的部分越大,代表星球的大小越大。 若數值為正,代表星球向右飛。 若數值為負,代表星球向左飛。 當兩顆星球碰撞時,會有以下碰撞規則規定: 如果一顆比較大,另一顆比較小,則比較大的那棵
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
題目敘述 題目會給我們一個整數陣列nums,要求我們計算平衡軸心點在哪? 平衡軸心的意思就是軸心點索引左側的元素總合 = 軸心點索引右側的元素總合 例如 整數陣列nums=[1,2,2,7,2,3] 7左側的元素總合為 1 + 2 + 2 = 5 7右側的元素總合為 2 + 3 = 5
題目敘述 假想一位自行車手正在公路旅行,旅行起始點從海拔為0的地方開始出發,給定每個紀錄點的高度位移向量陣列gain,請問整趟旅途中的海拔最高點是多少? 題目的原文敘述 測試範例 Example 1: Input: gain = [-5,1,5,0,-7] Output: 1 Expl
題目敘述 題目會給定一個輸入字串s和一套編碼規則,要求我們針對字串s進行解碼,並且以字串的形式返回答案。 編碼規則: 數字[字串] -> []內的字串以對應倍數做展開,而且允許巢狀編碼。 例如: 3[a] 解碼完就是 aaa 2[bc] 解碼完就是 bcbc 2[a2[b]] = 2
題目敘述 題目會給定我們一個二維陣列,要求我們計算內部元素相同的column row pairs總共有多少條? 註: pair的定義就是row i 和 column j 彼此內部元素值都相同,這樣就算一條pair。 題目的原文敘述 測試範例 Example 1: Input: gr
題目敘述 題目會給定我們一個整數陣列asteroids,每個元素代表每顆星球的大小和飛行方向。 絕對值的部分越大,代表星球的大小越大。 若數值為正,代表星球向右飛。 若數值為負,代表星球向左飛。 當兩顆星球碰撞時,會有以下碰撞規則規定: 如果一顆比較大,另一顆比較小,則比較大的那棵
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
題目敘述 題目會給我們一個整數陣列nums,要求我們計算平衡軸心點在哪? 平衡軸心的意思就是軸心點索引左側的元素總合 = 軸心點索引右側的元素總合 例如 整數陣列nums=[1,2,2,7,2,3] 7左側的元素總合為 1 + 2 + 2 = 5 7右側的元素總合為 2 + 3 = 5
題目敘述 假想一位自行車手正在公路旅行,旅行起始點從海拔為0的地方開始出發,給定每個紀錄點的高度位移向量陣列gain,請問整趟旅途中的海拔最高點是多少? 題目的原文敘述 測試範例 Example 1: Input: gain = [-5,1,5,0,-7] Output: 1 Expl
你可能也想看
Google News 追蹤
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
​好朋友終於結婚了,很高興她找到最好的歸宿,是嫁給了愛情!想起我們以前高中晚自習的革命情誼,真的好久遠哦~ ▼上週參觀他們的新家,整理得好舒適,色系也讓人心靈上充滿寧靜,好棒的住家!聽我誇獎到不行,朋友也興致勃勃拿出手機,和我分享新家裝潢的經過。
Thumbnail
一, 简介 模块化开发系统最初见于俄罗斯人创立的Tibbo公司。 欧美设计的产品多是一个针对性设计,用于解决某个已知的问题,出厂后功能不能更改。比如说控制化工设备的控制器只能用于控制某一类化工设备,出厂后不能用于其它。这就导致了产品的功能针对性越来越强,越来越细分化,某一公司针对的领域越来越小。整个
Thumbnail
更衣室設計與系統櫃設計的關係大解密 更衣室設計,早期常聽到出現的場域不是伸展台後台或是精品服飾店。這也是為什麼更衣室成為男男女女都嚮往的居家空間設計,換句話說,擁有好的更衣室規劃,就等於擁有了引領時尚的潛力。而更衣室的存在不僅止於潮流或為了好看而設計,更重要的是:它讓屋主擁有很好的陳列展示、收納衣物
Thumbnail
第1部分:鋼片軋延厚度和速度的建模和控制 MathWorks工程師展示使用Simulink作鋼片(sheet-metal)軋延機的建模和控制 系統設計平台的優勢。 1:03:29 https://nl.mathworks.com/videos/multi-stage-rolling-mill-pro
Thumbnail
去年下半年開始了幾個工廠設備的監控專案顧問開發。 有別於以往比較多接觸的消費者端應用,情境確實比較不一樣。系統開發很重要的一個點是因時制宜、因地制宜,這次就算是一個很好的案例。 本篇文章紀錄一下值得分享的心得。
Thumbnail
軟體開發一個很迷人的地方是可以在架空的世界(電腦世界)中重新思考、解構並處理真實世界的問題。但要怎樣真正有效的解決問題就很看各家功力了。 這篇文章我們暫且放下溝通及流程規劃的議題,聚焦來看看純粹領域差異造成的困難以及該怎麼面對。 回顧過往曾經觸碰過的領域真的滿多,茲列舉幾個
Thumbnail
無論是參與面試或釐清需求,系統設計常常令人感到困惑,不知如何進行。 我想,原因大概有兩種。 首先,不同領域的系統通常都有不同的設計要素,如何找出這些要素進行提問? 其次,即便提出疑問找出重點,接下來要如何針對這些要素進行高層設計或規劃? 《系統設計面試指南》對於系統設計的初步規劃或高層結構提供合適的
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
​好朋友終於結婚了,很高興她找到最好的歸宿,是嫁給了愛情!想起我們以前高中晚自習的革命情誼,真的好久遠哦~ ▼上週參觀他們的新家,整理得好舒適,色系也讓人心靈上充滿寧靜,好棒的住家!聽我誇獎到不行,朋友也興致勃勃拿出手機,和我分享新家裝潢的經過。
Thumbnail
一, 简介 模块化开发系统最初见于俄罗斯人创立的Tibbo公司。 欧美设计的产品多是一个针对性设计,用于解决某个已知的问题,出厂后功能不能更改。比如说控制化工设备的控制器只能用于控制某一类化工设备,出厂后不能用于其它。这就导致了产品的功能针对性越来越强,越来越细分化,某一公司针对的领域越来越小。整个
Thumbnail
更衣室設計與系統櫃設計的關係大解密 更衣室設計,早期常聽到出現的場域不是伸展台後台或是精品服飾店。這也是為什麼更衣室成為男男女女都嚮往的居家空間設計,換句話說,擁有好的更衣室規劃,就等於擁有了引領時尚的潛力。而更衣室的存在不僅止於潮流或為了好看而設計,更重要的是:它讓屋主擁有很好的陳列展示、收納衣物
Thumbnail
第1部分:鋼片軋延厚度和速度的建模和控制 MathWorks工程師展示使用Simulink作鋼片(sheet-metal)軋延機的建模和控制 系統設計平台的優勢。 1:03:29 https://nl.mathworks.com/videos/multi-stage-rolling-mill-pro
Thumbnail
去年下半年開始了幾個工廠設備的監控專案顧問開發。 有別於以往比較多接觸的消費者端應用,情境確實比較不一樣。系統開發很重要的一個點是因時制宜、因地制宜,這次就算是一個很好的案例。 本篇文章紀錄一下值得分享的心得。
Thumbnail
軟體開發一個很迷人的地方是可以在架空的世界(電腦世界)中重新思考、解構並處理真實世界的問題。但要怎樣真正有效的解決問題就很看各家功力了。 這篇文章我們暫且放下溝通及流程規劃的議題,聚焦來看看純粹領域差異造成的困難以及該怎麼面對。 回顧過往曾經觸碰過的領域真的滿多,茲列舉幾個
Thumbnail
無論是參與面試或釐清需求,系統設計常常令人感到困惑,不知如何進行。 我想,原因大概有兩種。 首先,不同領域的系統通常都有不同的設計要素,如何找出這些要素進行提問? 其次,即便提出疑問找出重點,接下來要如何針對這些要素進行高層設計或規劃? 《系統設計面試指南》對於系統設計的初步規劃或高層結構提供合適的