Wpis z mikrobloga

Co myślicie o Senior Java Developerze który nie potrafił rozwiązać tego zadania na live-coding? Czy Ty byś poradził sobie z tym zadaniem w 1.5h godziny? Nie mówię tutaj o interview do FAANG tylko do kontraktornii, jako wstępna rozmowa przesiewowa, przed docelową rozmową z klientem.

https://leetcode.com/problems/minimum-window-substring/

#pracait #korposwiat #programowanie #programista15k #java
Ksiega_dusz - Co myślicie o Senior Java Developerze który nie potrafił rozwiązać tego...

źródło: Zrzut ekranu 2024-11-23 232606

Pobierz
  • 33
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ksiega_dusz: Zadania rekrutacyjne brzmią jakby dotyczyły jakiegoś równoległego wymiaru. Pracuje w IT 20 lat i nigdy w pracy nie musiałem rozwiązywać podobnego problemu ( ͡° ͜ʖ ͡°) Na samym końcu takiego procesu zatrudniany jest ekspert od algorytmicznych przekształceń na stringach który nie potrafi zrobić zadania które mój junior robi z palcem w dupie.
  • Odpowiedz
@Ksiega_dusz no pewnie. Siedzisz nad leetcode parę dzieciąt godzin i takie zadania robisz automatycznie. Problem należy do jednej z pięciu grup algorytmów i po jakimś czasie te zadania stają się do sobie podobne. Potem Cię zatrudniają i zapominasz aż do następnej rekrutacji ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@WhiskyRomeo co XD. Przecież one są labeled odpowiednio jako easy i hard. Ten flood fill to jest najbardziej trywialna wariacja dfsa. Nie da sie tego nie zrobic jak chociaż liznąłeś grafy. A to z tym oknem jest s---------e przez liczbe edge case'ów itd.
  • Odpowiedz
Ja się na początku zaciąłem bo nie wiedziałem, co to jest „window substring”. Wtf. Czemu nie piszecie po ludzku „substring”? Sytuacja stresowa, a wy się brandzlujecie jakąś faangową terminologią.

Jak senior nie umie tu zakodzić algorytmu kwadratowego, to do odrzucenia. Ale pytanie, po co ci lepszy algorytm, jak masz mniej niż 10k znaków.
  • Odpowiedz
@Ksiega_dusz: ja bym najpierw zliczył w hashmapie, ile potrzebujemy liter w naszym substringu. Koszt przejścia to
O(t)

Później liczymy sobie tablicę pomocniczą T dla której pod ideksem i jest to jest hashmapa z licznościami liter w danym stringi wejściowym, od 1 do I. Koszt stworzenia takiej tablicy to przejście liniowe po stringu t, czyli O(s)

No i później rozwiązanie najbardziej na pałę to byłoby sprawdzenie dowolnej kombinacji T[i]-T[j] dla i,j <= t.
  • Odpowiedz