¿Cómo encontrar si un punto está dentro de un conjunto de intervalos?

Estoy buscando la forma más rápida de decidir si un punto en una línea está o no dentro de un subconjunto de esta línea. Me dan un Punto entero, y también tengo una "lista" de:

Puntos, representados por un entero (3, 10, 1000, etc.)Intervalos que yo represento por 2 enteros (2:10 son todos enteros de 2 a 10 incluidos, 50:60, etc.)

En este ejemplo, si el valor de mi punto es 5, devuelvo verdadero porque está incluido en un intervalo, igual para 55. Si mi punto es igual a 1000, también devuelvo verdadero porque coincide con la lista de puntos.

Busco una forma rápida (más rápida que lineal) para verificar esta condición, SIN tener que instanciar tantos enteros como sean posibles (es decir, para un intervalo de 1: 1000 no quiero instanciar los 1000 enteros). ¿Se puede hacer esto en un tiempo logarítmico?

Gracias

edición: puede considerar que cualquier tiempo que se tome para preprocesar la lista de datos es igual a 0, porque una vez que se procesen mis intervalos iniciales, debo aplicar esta prueba a 10k puntos

Respuestas a la pregunta(6)

Su respuesta a la pregunta