Najlepszy sposób na skuteczne znalezienie regionów o wysokiej gęstości

W trakcie mojego kodowania natknąłem się na problem w następujący sposób: Znajdź region o stałym rozmiarze w przestrzeni 2D, który ma największą gęstość cząstek. Cząstki można ogólnie uznać za rozmieszczone losowo na całej przestrzeni, ale teoretycznie powinny istnieć obszary o większej gęstości.

Na przykład 100 cząstek jest umieszczanych losowo w siatce 2D o rozmiarze 500x500 i muszę znaleźć region 50x50 z największą liczbą cząstek (najwyższa gęstość).

Czy jest jakiś inny sposób obliczenia najlepszego regionu oprócz brutalnej siły testującej każdy możliwy region (w tym przypadku około 200000 regionów)? Skalowałoby się to w O (n ^ 2) dla osi o długości n.

questionAnswers(3)

yourAnswerToTheQuestion