Wpis z mikrobloga

#programowanie
Zacząłem w wolnej chwili robić zadania z HackerRanka i np. robiąc takie zadanie jak to zastanawiam się na ile dobre jest moje rozwiązanie , jak zostałoby np. odebrane przez rekrutera. Po prostu zastanawiam się na co zwracają uwagę w przypadku takich zadań rekruterzy. Link do rozwiązania http://wklej.org/id/3237703/
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@D3xxT3r: Tak jak pisze @AwizisieAkat dla mnie najważniejsze by było w takim przypadku, czy znasz wydajność rozwiązania jakie proponujesz. Widziałem nieraz listy, które są szybkie dla małej ilości elementów a powyżej pewnej wartości bardzo zwalniały.

Kolejną rzeczą na jaką bym zwrócił uwagę to, że przekazujesz n do funkcji arrayleftrotation i nic z nią nie robisz. Nie przeprowadzasz żadnej weryfikacji tej wartości.

Jeśli dobrze, czytam zadanie to d
  • Odpowiedz
@stash: co do przekazywania n to akurat definicja funkcji była już w kodzie zadania, ja dodałem tylko implementacje, po prostu zastanawia mnie czy powinienem tworzyć rozwiązanie, które np będzie uniwersalne dla wielu języków czy niekoniecznie. Ogólnie dzięki za analize.
  • Odpowiedz
@D3xxT3r: I to jest bardzo dobre miejsce, gdzie powinieneś zrobić weryfikację. Nie możesz wierzyć osobie, która będzie korzystała z Twojego kodu, że na pewno będzie pamiętała o wszystkich warunkach brzegowych.

Rozwiązanie jakie będziesz pisał pod rekrutację ma pasować pod technologię pod jaką piszesz. Chociażby ze względu na standardy jakie się w niej przyjęło.
  • Odpowiedz
@stash: A wszystkie autorytety (Fowler, Martin) mówią, żeby przedwcześnie nie optymalizować wydajności, tylko robić refaktorycację, jak faktycznie mamy problem z wydajnością i nawet wtedy nie bazować na swojej znajomości wydajności różnych rozwiązań, tylko sprawdzić profilerem (a wtedy przeważnie okazuje się, że problem jest gdzie indziej, niż zakładaliśmy)
  • Odpowiedz
@dog_meat: OP przyszedł z tematem zadania rekrutacyjnego, a więc tematu gdzie powinien jak najlepiej je rozwiązać, ale również pokazać przy tym odpowiedni poziom wiedzy. Na pewno sporo zapunktuje u osoby rekrutującej jak nie tylko pokaże działający kod, ale również będzie w stanie opowiedzieć o złożoności obliczeniowej, pamięciowej.

Oczywiście, że autorytety mają racje odnośnie przedwczesnej optymalizacji. Tylko tutaj odpowiedź na pytanie, czy powinno się optymalizować brzmi "to zależy". Trzeba być zawsze
  • Odpowiedz