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 минут..
Обсуждают сегодня