Intersección de intervalos

Crea un método que reciba un arreglo de intervalos y devuelva cuántos intervalos contienen un punto dado.

Un intervalo contiene un punto determinado si el punto se encuentra dentro del intervalo o en su límite. Por ejemplo, el punto 3 está contenido en el intervalo [2, 4] (se encuentra dentro) y en el intervalo [2, 3] (se encuentra en el límite).

Para ilustrarlo:

Program.countOverlapping(new int[][]{{1, 2}, {2, 3}, {1, 3}, {4, 5}, {0, 1}}, 2) ➞ 3
// Esto se debe a que [1, 2], [2, 3] y [1, 3] contienen el punto 2.

Ejemplos

Program.countOverlapping(new int[][]{{1, 2}, {2, 3}, {3, 4}}, 5) ➞ 0

Program.countOverlapping(new int[][]{{1, 2}, {5, 6}, {5, 7}}, 5) ➞ 2

Program.countOverlapping(new int[][]{{1, 2}, {5, 8}, {6, 9}}, 7) ➞ 2

Notas

  • Cada intervalo se representa mediante un arreglo con un punto inicial y un punto final.
  • Se considera que los intervalos se intersectan aunque solo lo hagan en un punto; por ejemplo, [2, 3] y [3, 4] se intersectan en el punto 3.
  • Si te resulta útil, puedes dibujar estos intervalos sobre una recta en una hoja de papel.