myślałem problem, który przedstawia się następująco:Znajdowanie najbliższa liczba w przedziale
Mamy tablicę A liczb całkowitych o rozmiarze n, a mamy testowych sprawach T iw każdym przypadków testowych daje nam M numer i zakres [s, e] tj. otrzymujemy s i e, a my musimy znaleźć najbliższą liczbę m w zakresie tej macierzy (A [s] -A [e]).
Możesz założyć, że tablica ma indeks od 1 do n.
Na przykład:
A = {5, 12, 9, 18, 19}
m = 13
s = 4 and e = 5
Więc odpowiedź powinna być 18.
Ograniczenia:
n<=10^5
t<=n
Wszystko mogę myśl jest O (n) rozwiązanie dla każdego przypadku testowego, i myślę, że istnieje lepsze rozwiązanie.
Jeśli nie jest w żaden sposób posortowana, musisz uzyskać dostęp do każdej wartości między A [s] i A [e], więc O (n) jest.A raczej O (e-s), jak sądzę. – femtoRgon
@femtoRgon wiem to, ale przy użyciu dowolnej struktury danych uważam, że jest to możliwe (po prostu myśl, ale nie jestem pewien). –
Ponieważ określono maksymalny rozmiar związany (10^5), czy nie jest złożoność O (1) - tj. Stały czas? – Chris