Неоднозначность структуры данных

Я не могу понять этот вопрос интервью.

У вас есть массив целых чисел. Вам нужно предоставить другую структуру данных, которая будет иметь следующие функции:

int get(int index)
void set (int index, int value)
void setall(int value)

Все они делают то, что вы думаете, они должны делать. Ограничение состоит в том, что каждая функция находится в O (1).

Как вы можете спроектировать его так, чтобы setAll было O (1).

Я думал о добавлении другого поля к каждому целому числу, которое будет указывать на целое число, которое будет изменяться каждый раз при вызове setAll. проблема возникает, когда кто-то вызывает setAll , а затем set , затем get .

Edit: Я изменил имена переменных, чтобы было понятнее. Кроме того, поскольку вы спросили, get предполагает возвращение array [i], set (index, value), предположим, чтобы поместить значение value в array [index].

После setall (index, value) вы должны get (get (i) == get (j) == value) для каждого i, j в массиве.

17
задан HaveNoDisplayName 6 July 2015 в 02:32
поделиться