Учитывая массив целых чисел, могу ли я найти пару смежных элементов, которые имеют наибольший продукт, и вернуть этот продукт, используя apply?
Можно ли сделать это с помощью функции apply?
Ожидается input:
x <- c(3, 6, -2, -5, 7, 3)
Ожидаемый результат:
adjacent_elements_product(x) = 21
Подобные сообщения, которые могут иметь отношение к теме: Учитывая массив целых чисел, найдите пару смежных элементов, которая имеет наибольшее произведение и вернуть этот продукт
Вы можете использовать прокатку apply
apply
max(zoo::rollapply(x, 2, prod)) #[1] 21
Базовая опция R будет:
max(head(x, -1) * tail(x, -1))
Использование базы R и функции, как в вашем примере:
x <- c(3, 6, -2, -5, 7, 3) adjacent_elements_product <- function(x) { return(max(x[-1] * x[-length(x)])) } adjacent_elements_product(x)