Это вопрос к моей предыдущей проблеме, касающийся техник обработки 2d-массивов со сложностью o (1).
То есть получить среднее подмножества массива, но если это подмножество выходит за границы массива, принимая их за ноль. Это с двумерным массивом.
В действительности массив может go до [2000] [2000], но для простоты возьмем двумерный массив размером [4] [4].
array[4][4] = {0, 1, 2, 3
4, 5, 6, 7
8, 9, 10, 11
12, 13, 14, 15}
Теперь предположим, что я хочу получить сумму массива между [2] [2] и [3] [3], то есть сложить 10 + 11 + 14 + 15 и разделить на четыре. Это может быть сделано в решении ao (1) с использованием методов «таблицы суммированных площадей» или «интегрального изображения».
Однако меня немного смущает вопрос о том, как сохранить сложность o (1), обеспечивающую / когда:
- подмножество массива выходит за пределы фактического массива
- индексы массива вне фактического массива принимаются равными нулю.
- Алгоритм вычисления по-прежнему равен o (1)
Так, например, скажем, для этой суммы в пикселях меня просят получить сумму от [2] [2] до [4] [4]. Это имеет теоретический массив, числа вне фактического обозначаются f (для подделки) , но принимаются как ноль :
array_theory[5][5] = {0, 1, 2, 3, 0f
4, 5, 6, 7, 0f
8, 9, 10, 11, 0f
12, 13, 14, 15, 0f
0f, 0f, 0f, 0f, 0f}
или в изображении:
Итак, среднее значение между [2] [2] и [4] [4] составляет (10 + 11 + 0f + 14 + 15 + 0f + 0f + 0f + 0f) / 9
Я думаю, что должен использовать какой-то метод фильтрации или обработки изображений, который не может показаться ключевым словом, чтобы позволить мне найти / реализовать его, и я заигрываю с ним в результатах поиска.
Любая помощь будет принята с благодарностью!