E
Egor Wexler печатает…
@egor_wexler4.9K подп.
8.8Kпросмотров
6 августа 2025 г.
statsScore: 9.7K
Задача начальника №2 Дан массив чисел int Arr[MAX_LEN]; и методы void SetCell(int value, int index); void GetCell(int index); void SetAllCells(int value); Которые соответственно - задает значение ячейки - получает значение из ячейки - задает какое-то значение всем ячейкам. И надо сделать эти три метода так, чтобы time complexity был O(1) То есть не зависело от размера массива. Проблема в третьем методе - если менять в значения в массиве, то это будет О(N) Решение: Следить за тем, когда ячейки были заданы. Если мы вызвали SetCell - меняем значение в ячейке и обновляем версию этой конкретной ячейки на последнюю Когда вызываем SetAllCells - меняем "глобальное" значение и двигаем вверх "глобальную" версию. Если версия в конкретной ячейке более старая, чем глобальная - это значит что SetAllCells был вызван после SetCell и нам надо вернуть глобальное значение. В ином случае - просто смотрим в ячейку. В коде - в комментарии 👇:
8.8K
просмотров
944
символов
Нет
эмодзи
Нет
медиа

Другие посты @egor_wexler

Все посты канала →