Źródło: Microsoft pytanie wywiadZnajdź element niepowtarzających w posortowanej tablicy
Biorąc posortowaną tablicę, w której każdy element jest dwukrotnie występuje z wyjątkiem jednego, który jest obecny jeden raz, musimy znaleźć ten element .
Teraz standardem O (n) rozwiązaniem jest zrobić XOR z listy, która będzie zwracać element niepowtarzających (ponieważ wszystkie zduplikowane elementy znoszą się.)
Czy możliwe jest szybsze, jeśli wiemy rozwiązać ten problem tablica jest posortowana?
Wykonaj binarne "przeszukiwanie" (raczej traversal) w tablicy, sprawdź obu sąsiadów, jeśli bot jest inny niż średnia wartość, masz rozwiązanie. To jest 'O (log n)'. –
@ H2CO3 jak to zrobić? Czy nie sąsiedzi zawsze będą inni? –
@ZiyaoWei Nopeeeee! Po prostu nie mówię po angielsku. Jeżeli tablica jest posortowana, ('1 1 2 2 3 4 4'), to jeden sąsiad jest taki sam jak wartość centralna. –