leetcode 佇列習題

2021-10-09 15:39:58 字數 965 閱讀 1962

最近的請求次數

寫乙個 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]

解題思路(參考題解)

計算t時刻之前的ping值在 [t - 3000, t] 時間範圍之內的個數

1的話,區間為[-2999,1]有乙個(1),100:[-2900,100]有兩個(1,100).。。。。

注意:每次對 ping 的呼叫都使用比之前更大的 t 值。只需要看佇列前面的數是否比t-3000小

**

class recentcounter 

int ping(int t)

ma.push_back(max);

if(it==nums.end()) break;

it-=k;

}return ma;

}int main()

cin>>k;

n=maxslidingwindow(nums,k);

for(vector::iterator it=n.begin();it!=n.end();it++)

return 0;

}

參考題解
vectormaxslidingwindow(vector& nums, int k)

return ans;

}

leetcode 佇列習題02

設計迴圈佇列 設計你的迴圈佇列實現。迴圈佇列是一種線性資料結構,其操作表現基於 fifo 先進先出 原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為 環形緩衝器 迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,一旦乙個佇列滿了,我們就不能插入下乙個元素,即使在佇列前面...

棧和佇列習題

public class mystack 出棧操作 public integer pop 通過下標找到當前的棧頂元素 int ret elem size 1 size return ret 取棧頂元素 public integer peek return elem size 1 2 用單鏈表實現棧 ...

LeetCode習題整理(一)

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。我的想法是逐個比較兩個鍊錶各項的大小 模擬過程 l1第一項比較l2第一項相等 執行l2的第一項插入到l1的第二項,此時的l1 1,1,2,4 l2 1,3,4 l1需指向下乙個結點,兩表指向下乙個結點,迴圈過...