最近的請求次數
寫乙個 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需指向下乙個結點,兩表指向下乙個結點,迴圈過...