Biorąc tablicę, dla każdego elementu muszę znaleźć najmniejszy element po prawej stronie danego elementu, który jest większy od bieżącego elementu.Znajdź następny większy element w tablicy
Matematycznie Dla każdego wskaźnika i
w tablicy A
, trzeba znaleźć wskaźnik j
tak, że
A[j] > A[i]
j > i
A[j] - A[i] is minimum
trzeba znaleźć j
dla każdego indeksu i
Bestia roztwór siła byłaby O(n^2)
i mam nadzieję, że zrobię to lepiej. Myślę, że rozwiązanie O(n log n)
jest możliwe dzięki samonośrodkowemu BST, ale wydaje się to dość skomplikowane. Ponadto potrzebuję rozwiązania O(n)
.
Czy istnieje rozwiązanie tego problemu w postaci O(n)
? Czy istnieje dowód, że dolna granica to O(n log n)
?
Musisz znaleźć dla każdego indeksu? A może tylko dany indeks? –
Tak więc wejście to "A" i "i", pożądane wyjście to 'j', s.t. podane warunki są spełnione? – Nicolas
Potrzebuję go dla wszystkich indeksów. Nie tylko jednego. Dane wejściowe to '' A'' a wyjście to tablica '' B'' zawierająca '' j'' dla wszystkich indeksów '' i'' –