LeetCode 1656 設計有序流

2021-10-19 14:26:23 字數 1871 閱讀 8012

有 n 個 (id, value) 對,其中 id 是 1 到 n 之間的乙個整數,value 是乙個字串。不存在 id 相同的兩個 (id, value) 對。

設計乙個流,以 任意 順序獲取 n 個 (id, value) 對,並在多次呼叫時 按 id 遞增的順序 返回一些值。

實現 orderedstream 類:

orderedstream(int n) 構造乙個能接收 n 個值的流,並將當前指標 ptr 設為 1 。

string insert(int id, string value) 向流中儲存新的 (id, value) 對。儲存後:

如果流儲存有 id = ptr 的 (id, value) 對,則找出從 id = ptr 開始的 最長 id 連續遞增序列 ,並 按順序 返回與這些 id 關聯的值的列表。然後,將 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 僅由小寫字母組成

每次呼叫 insert 都會使用乙個唯一的 id

恰好呼叫 n 次 insert

簡單題不簡單:(注意邊界,考慮特殊情況)

#include#includeusing namespace std;

void printvec(vector& res)

}class orderedstream

}vectorinsert(int idkey, string value)

}/* 拷貝m_vec資料 */

for (int i = idkey - 1; i < ptr; i++)

return emp;

}private:

int ptr; //當前指標

int length; //總長度

vectorm_vec; //string陣列

};/**

* your orderedstream object will be instantiated and called as such:

* orderedstream* obj = new orderedstream(n);

* vectorparam_1 = obj->insert(idkey,value);

*/int main()

LeetCode 1656 設計有序流

有 n 個 id,value 對,其中 id 是 1 到 n 之間的乙個整數,value 是乙個字串。不存在 id 相同的兩個 id,value 對。設計乙個流,以 任意 順序獲取 n 個 id,value 對,並在多次呼叫時 按 id 遞增的順序 返回一些值。實現 orderedstream 類 ...

架構設計有感

架構是乙個很直覺化的概念,理解的反差會讓設計變得大相徑庭。架構設計者 不一定是架構師 對系統的把握 認知和控制力會極大的影響系統開發的走勢。需求分析,功能分拆,技術選型,人員控制,規模 進度和質量控制等都是架構設計者的任務,穩定安全,高效 可擴充套件 可維護 優秀的使用者體驗是架構設計的基本目標。不...

資料庫設計(有例項)

1.概念 資料庫設計就是根據業務系統的具體需求,結合我們所選用的dbms 資料庫管理系統 為這個業務系統構造出最優的資料儲存模型。並建立資料庫中的表結構以及表與表之間的關聯關係的過程。使之能有效的對應用系統中的資料進行儲存,並可以高效的對已儲存的資料進行訪問。關係型資料庫系統 mysql oracl...