13, 19, 20] as arr
select
arrayFilter(x -> (arr[x] - arr[x-1]) > 3, arrayEnumerate(arr)) -- [4,11]
, arrayFilter((y, x) -> (arr[x] - arr[x-1]) > 3, arr, arrayEnumerate(arr)) -- [7,19]
, arr
Массив arr - постоянно нарастающий(количество секунд с начала времен)
Как получить массив диапазонов , разбитый по условию , что расстояние между соседними значениями должно превысить 3 секунды ?
В результате должен получиться массив : [[1, 3], [7, 13], [19, 20]]
Спасибо.
Практически это выглядит так : видеокамера записывает операции сотрудника предприятия. Помимо этого , информационная система хранит время каждой операции. Нужно получить начало и конец периода , когда нужно смотреть видео. Но не с 1 по 20 секунду целиком, а этот интервал , разбитый на блоки , с условием перерыва сотрудника более чем в 3 секунды : )) Ну хорошо, хорошо.. На самом деле - там не 3 секунды , а 10 минут..
Обсуждают сегодня