假設我有一個像[5, 3, 1, 2, 4]
這樣的元素列表,我想按位置比較兩個元素。列表中的第一個更大,或者true
。所以:如何在恆定時間比較列表中的兩個元素
compare(5, 3) # true
compare(2, 1) # false
compare(3, 4) # true
我該如何在恆定時間內做到這一點?一種方式我認爲這樣做是使用地圖,其中關鍵的是元素的和值在列表中的位置:
order = {5: 0, 3: 1, 1: 2, 2: 3, 4: 4}
然後我們攤銷O(1)時間,但這將是O( N)空間。有沒有人有更優雅的解決方案?
你能勾勒出潛在的業務問題? – mellamokb 2011-02-17 23:26:41