Подмассив
Подмассив — это часть массива, состоящая из элементов, расположенных подряд. Чтобы задать подмассив, достаточно указать индекс первого и индекс последнего элемента.
Границы и длина
Обычно границы подмассива включительные: элементы с индексами \(l\) и \(r\) кіреді в него. Если массив индексируется с нуля, то подмассив \(A[l..r]\) содержит элементы от \(A[l]\) до $A[r]]. Его длина равна разности правой и левой границ, увеличенной на единицу.
Например, при \(l=2\) и \(r=5\) в подмассив кіреді төрт элемента: с индексами \(2,3,4,5\). При индексах с единицы правило остаётся тем же.
Пусть \(A=[4,7,1,9,3,8]\). Подмассив \(A[1..4]\) при нумерации с нуля равен \([7,1,9,3]\). Его границы: \(l=1\), \(r=4\), длина: \(4-1+1=4\).
Как перебрать подмассивы
Чтобы обработать один подмассив, фиксируют его границы и перебирают индексы \(i\) от \(l\) до \(r\) включительно. Чтобы перебрать все подмассивы, выбирают левую границу \(l\), затем правую границу \(r\) от \(l\) до последнего индекса массива. Для ускорения обработки границ иногда применяют метод двух указателей, а для вычислений на отрезках — обработку отрезка массива.
для l от 0 до n - 1 для r от l до n - 1 обработать A[l..r]
Количество всех непустых подмассивов массива длины \(n\) равно числу пар границ \(l,r\), для которых \(0 \le l \le r < n\).
Подмассив — непрерывный фрагмент. Элементы с индексами \(1,3,5\) не образуют подмассив, потому что между ними пропущены элементы. Такая выборка является подпоследовательностью, но не подмассивом.
Сколько элементов содержит подмассив \(A[3..7]\)?
Главное
- Подмассив — непрерывная часть массива, задаваемая границами \(l\) и \(r\).
- При включительных границах длина равна \(r-l+1\).
- Все непустые подмассивы массива длины \(n\) можно перебрать двумя вложенными циклами; их количество равно \(\frac{n(n+1)}{2}\).