2013-08-21 51 views
0

襯衫有各種各樣的品種。 品種是基於像圖案,尺寸,顏色等參數多圖案物體設計DS

假設你有所有類型的襯衫可用。現在有喜歡的各種查詢:

Show all types of shirt having colour 「red」.

Show all types of shirt having size 「small」 and pattern 「checks」 etc. etc.

因此,假設我們有「K」不同勢的品種,和N襯衫,什麼樣的數據結構,才能設計出存儲以下數據,以最佳方式回答上述查詢?

我認爲的一個明顯的解決方案是存儲'K'個數據實例,根據每個品種進行分組。但這將非常節省空間。

我們可以做些什麼,請記住空間/時間範圍

回答

1

如何存儲K指針爲每個項目,指示具有相同的第K個品種的下一個項目。

然後對於每個查詢,挑選一個品種並枚舉滿足該品種的所有項目,檢查它是否符合其他約束並顯示它。因此,對於每個查詢採取O(NK)並且對於添加新項目採取O(1),而空間是O(NK)

你的場景看起來就像一個數據庫,爲什麼你不檢查。

+0

這就是我所想的。 thanx。 – Spandan