LeetCode 1656. 设计有序流(数组)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1656. 设计有序流(数组)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
有 n 個 (id, value) 對,其中 id 是 1 到 n 之間的一個整數(shù),value 是一個字符串。不存在 id 相同的兩個 (id, value) 對。
設(shè)計一個流,以 任意 順序獲取 n 個 (id, value) 對,并在多次調(diào)用時 按 id 遞增的順序 返回一些值。
實(shí)現(xiàn) OrderedStream 類:
- OrderedStream(int n) 構(gòu)造一個能接收 n 個值的流,并將當(dāng)前指針 ptr 設(shè)為 1 。
- String[] insert(int id, String value) 向流中存儲新的 (id, value) 對。存儲后:
如果流存儲有 id = ptr 的 (id, value) 對,則找出從 id = ptr 開始的 最長 id 連續(xù)遞增序列 ,并 按順序 返回與這些 id 關(guān)聯(lián)的值的列表。
然后,將 ptr 更新為最后那個 id + 1 。
否則,返回一個空列表。
示例:
輸入 ["OrderedStream", "insert", "insert", "insert", "insert", "insert"] [[5], [3, "ccccc"], [1, "aaaaa"], [2, "bbbbb"], [5, "eeeee"], [4, "ddddd"]] 輸出 [null, [], ["aaaaa"], ["bbbbb", "ccccc"], [], ["ddddd", "eeeee"]]解釋 OrderedStream os= new OrderedStream(5); os.insert(3, "ccccc"); // 插入 (3, "ccccc"),返回 [] os.insert(1, "aaaaa"); // 插入 (1, "aaaaa"),返回 ["aaaaa"] os.insert(2, "bbbbb"); // 插入 (2, "bbbbb"),返回 ["bbbbb", "ccccc"] os.insert(5, "eeeee"); // 插入 (5, "eeeee"),返回 [] os.insert(4, "ddddd"); // 插入 (4, "ddddd"),返回 ["ddddd", "eeeee"]提示: 1 <= n <= 1000 1 <= id <= n value.length == 5 value 僅由小寫字母組成 每次調(diào)用 insert 都會使用一個唯一的 id 恰好調(diào)用 n 次 insert來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/design-an-ordered-stream
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
class OrderedStream {vector<string> arr;int ptr = 1; public:OrderedStream(int n) {arr.resize(n+1);}vector<string> insert(int id, string value) {arr[id] = value;vector<string> ans;while(ptr < arr.size() && arr[ptr] != "") {ans.push_back(arr[ptr]);ptr++;}return ans;} };216 ms 82.1 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關(guān)注我的公眾號(Michael阿明),一起加油、一起學(xué)習(xí)進(jìn)步!
總結(jié)
以上是生活随笔為你收集整理的LeetCode 1656. 设计有序流(数组)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode MySQL 1369.
- 下一篇: 04.卷积神经网络 W2.深度卷积网络: