Я не могу понять этот вопрос интервью.
У вас есть массив целых чисел. Вам нужно предоставить другую структуру данных, которая будет иметь следующие функции:
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 в массиве.