我無法確定這個採訪問題。你有一個整數數組。您需要提供另一個具有以下功能的數據結構:數據結構歧義
int get(int index)
void set (int index, int value)
void setall(int value)
他們都做你猜他們應該做的事。 限制是每個函數都在O(1)中。
你怎麼設計它,以便setAll將是O(1)。
我想爲每個整數添加另一個字段,它會指向每次調用setAll時都會更改的整數。問題出現時有人打電話setAll然後設置然後得到。
編輯:我改變了變量的名稱,所以它會更清晰。另外,既然你問了,得到是假設返回數組[i],set(index,value)假設把數值放在數組[index]中。
後setall(index, value)
你應該get (get(i) == get(j) == value)
爲陣列中的每個i,j。
什麼是'i'在'set'和'setall'? – 2011-05-02 12:35:37
我假設n =陣列的長度,效率是O(n)? – 2011-05-02 12:35:55
爲什麼會有問題,如果有人卡萊特setAll,然後設置,然後得到? (按順序,顯然) 此外,感覺這是一個家庭作業問題,而不是屬於「面試問題」部分的問題。 – 2011-05-02 12:37:55