有 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...