lokalne maksimum w 2D tablicy może być zdefiniowana jako wartość taka, że wszystko to 4 sąsiedzi są mniejsze lub równe do niego, czyli do a[i][j]
być lokalne maksimum,Znalezienie lokalne maksima w tablicy 2D
a[i+1][j] <= a[i][j]
&& a[i-1][j] <= a[i][j]
&& a[i][j+1] <= a[i][j]
&& a[i+1][j-1] <= a[i][j]
Zostałem poproszony o znalezienie wszystkich lokalnych maksimów w danej tablicy 2D.
Naiwnym sposobem wykonania tego byłoby przejrzenie wszystkich elementów i sprawdzenie, czy każdy element jest lokalnym maksimum. To byłby O (n^2). Uważam, że nie można zrobić nic lepszego, chociaż mój przyjaciel twierdzi, że powinien istnieć asymptotycznie lepszy algorytm. Jakieś wskazówki?
Miałem na myśli podział Divide i Conquer, ale uważam, że niemożliwe byłoby wykrycie wszystkich lokalnych maksimów bez przechodzenia przez wszystkie liczby, które musiałyby być O (n^2). Czy mam rację, czy też czegoś brakuje?
Jeśli chcesz tylko jednej z lokalnych maksimów, można je znaleźć w mniej niż n^2 czasie. –
@Habisoft dał najlepszą odpowiedź –