Tutaj jest problem do rozwiązania:Wychodząc z algorytmu O (n)
N Krasnoludy m oświadczenia o który jest wyższy od tego, kto (np Jason < Tim Burton < Jason itp.), Ale niektóre krasnoludy mogą kłamać o zamówieniu i przekazać nam błędne oświadczenie, więc naszym zadaniem jest sprawdzenie, czy możliwe jest zamówienie krasnoludów odpowiednio do ich wielkości. Rezultatem jest albo "Możliwe" albo "Niemożliwe" na wypadek, gdyby karzeł skłamał.
Do tej pory rozumiem pomysł wyobrażenia ukierunkowanego wykresu krasnoludów (z klasą dla krasnoluda), który powinien nam podać nazwę samego krasnoluda i imiona krasnoludów, którzy są od niego wyżsi. Ponieważ powinno to być drzewo opinające, wynik powinien być "Niemożliwy", jeśli wykres zawiera cykl.
Jak mogę to zrobić w środowisku wykonawczym O (n)? Już wypróbowałem niektóre rzeczy z dużą ilością pętli for i pętli rekurencyjnych, ale to albo nie byłoby odpowiednie, albo zajmowanie zbyt dużej ilości czasu podczas obsługi dużej wielkości tego problemu. Później powiedziano mi, aby raczej wymyślić algorytm z O (n) runtime.
Chciałbym wiedzieć, jak powinienem zmienić sposób myślenia, kiedy mam rozwiązać problem w określonym środowisku uruchomieniowym.
nie chcę jakiegokolwiek kodu Java lub wynik jako odpowiedź, ale niektóre pomaga więc mogę zarządzać to osobiście – JinseiNagai