Zadań i pomysłów nam przybywa, więc chcielibyśmy wzmocnić nasz team dodatkowymi siłami programistycznymi. Szukamy kogoś, kto lubi i umie programować.
Do rzeczy. Co oferujemy:
- niepowtarzalną startupową atmosferę
- partnerskie relacje, bez szefów i podwładnych
- ciekawe projekty (żadnego programowania stron firmowych!)
- szansę na realizację własnych pomysłów
Poszukujemy osób, które:
- są solidne, uczciwe, zaangażowane
- biegle posługują się obiektowymi językami programowania
- znają się na tworzeniu aplikacji internetowych
- są pasjonatami internetu
Wyjątkowo nie publikujemy listy mnóstwa akronimów, które “będą dodatkowym atutem”. Za to poprosimy Cię o małą pracę wstępną, której celem jest przekonanie nas, że jesteś osobą, która zna się na programowaniu. Prosimy o wyrozumiałość - dzięki temu wstępnemu testowi i Ty i my oszczędzimy nieco czasu.
A więc:
Napisz funkcję (w dowolnym języku programowania), która mają tablicę o długości N zawierającą liczby z zakresu 1 do N stwierdzi, czy występują w niej duplikaty (czy da się to rozwiązać w czasie liniowym? przy stałej pamięci? bez niszczenia zawartości tablicy?)
Rozwiązanie prześlij na adres praca [@] mojstartup.pl
Powodzenia!

Comments 15
To chyba nie jest takie trudne do napisania, prawda? Gorzej z pytaniami o czas i pamięć - na studiach nie uczą mnie informatyki, nie wiem, jak na te pytania odpowiedzieć. Chociaż myślę, że na oba odpowiedź brzmi: tak
Opublikowane 19 czerwca 2008 o 16:48 ¶Z przyjemnością bym wysłał zgłoszenie, ale a) przeprowadzka nie wchodzi w grę, a mieszkam w stolicy b) mam jeszcze studia..
Zadanie nie jest trudne. Zresztą można zacząć od podesłania rozwiązania nie uwzględniającego wszystkich warunków podanych w nawiasie, co zdecydowanie je upraszcza.
Co do Twoich zastrzeżeń - studentów zdecydowanie zapraszamy, o ile są w stanie zagwarantować zaangażowanie przynajmniej w wymiarze pół etatu (20h tygodniowo).
Praca zdalna potencjalnie też wchodzi w grę.
PS Proszę by chwilowo nie podawać rozwiązania w komentarzach z oczywistych względów
Opublikowane 20 czerwca 2008 o 9:22 ¶Ale jeśli chcecie to umieszczę tu rozwiązanie za jakiś czas.
Gwoli ścisłości: chodzi o STWIERDZENIE istnienia czy ZNALEZIENIE tych duplikatów???
Czy jest jakieś ograniczenie na N?
Jeśli to są hinty, to proszę o usunięcie tego posta
Opublikowane 20 czerwca 2008 o 10:20 ¶Wojtek,
Stwierdzenie istnienia. Może przyjąć, że funkcja powinna zwrócić wartość true jeśli występują duplikaty a false jeśli ich nie ma.
Ograniczenie na N wynika tylko z wielkości pamięci w której musi zmieścić się tablica oraz sposobu reprezentacji liczby, która ma być w niej przechowywana.
Opublikowane 20 czerwca 2008 o 10:37 ¶Czyżby to zadanie pochodziło z perwszego rozdziału “Programming Pearls?
Opublikowane 02 lipca 2008 o 11:43 ¶Hmm, tak na pierwszy rzut oka to przychodzą mi dwa rozwiązania:
)
Opublikowane 02 lipca 2008 o 17:08 ¶1) zmienna zajętość pamięci, czas liniowy
2) stała zajętość pamięci, czas kwadratowy
Ale funkcja o czasie liniowym i stałej zajętości pamięci ? Hmm musiałbym się porządnie nad tym zastanowić (nie chce jednoznacznie stwierdzić, że się nie da
google: array duplicates
Opublikowane 06 lipca 2008 o 10:42 ¶result: http://aperiodic.net/phil/archives/Geekery/find-duplicate-elements.html
Fajna rekrutacja
btw.
Samo stwierdzenie istenienia utrudnia teoretycznie mierzenie jakosci algorytmu. Zwieksza wplyw randomizera na predkosc dzialania funkcji.
Prosba, opublikujcie co ciekawsze metody :)….
Opublikowane 10 lipca 2008 o 10:39 ¶Jestem ciekaw ludzkiej inwencji
Witajcie,
@JacekL,
Nie wiem skąd pochodzi, inspirację zaczerpnąłem z nieprzemierzonych głębin internetu
@Coristo,
Da się.
@Sławek,
No jasne, że można wyszukać rozwiązanie w internecie. Co nie zmienia chyba sensowności jego umieszczenia w ogłoszeniu o pracę. Bo to ma oczywiście charakter “pierwszego odsiewu” i nie chodzi nawet o to, by znaleźć osoby, które umieją zaprojektować optymalne rozwiązanie, tylko o to:
1) by zainteresować osoby lubiące programować
2) wysłać bardziej precyzyjny sygnał, jakie są wymagania na to stanowisko, dzięki czemu część osób sama jest w stanie określić, czy to praca dla nich, czy też nie
3) zainicjować temat do dalszych rozmów z kandydatem
Nawiasem na podanej przez Ciebie stronie jest rozpatrywany (pokrewny ale) inny problem.
Pozdrawiam,
Opublikowane 11 lipca 2008 o 8:17 ¶Marek
If you want to find duplicate in Array then use hash look up table O(1).
Opublikowane 11 lipca 2008 o 8:54 ¶Na tej stronie:
)
)
http://jlaskowski.blogspot.com/2008/07/netbeans-ide-65m1-dostpny-i.html
… jest dyskusja na temat tego zadania. W dyskusji tej wynikło kilka niejednoznaczności tego zadania:
1. (mogłoby popsuć zabawę - usunięte
2. (mogłoby popsuć zabawę - usunięte
3. Czy liczby w tablicy są typu integer, czy real?
Pozdrawiam,
Opublikowane 11 lipca 2008 o 17:55 ¶Adam Woźniak
Hm. Czy aktualne jeszcze toto? Google mnie ze szkrzynki skierował.
Opublikowane 12 lipca 2008 o 10:37 ¶Wybaczcie wpis dziadka. Mam nadzieję, że po kilku miesiącach można wklepać swoje przemyślenia bez psucia zabawy innym.
Mój pierwszy pomysł - po sekundzie od przeczytania: Przcież dodawanie i mnożenie jest przemienne. Z góry wiadomo ile wynosi suma i iloczyn liczb od 1 do n. Wystarczy przebiec tablicę raz, policzyć i porównać do wzorca. WOW - minimum pamięci, liniowe rozwiązanie. Tylko szkopół w tym (co natchnęło mnie po chwili), że silnia pieruńsko szybko rośnie. Maszynka może rady nie dać
. Poza tym to tylko warunek konieczny, a nie jestem pewny czy wystarczający. ZONK Samą sumę łatwo da się oszukać.
Pomysł drugi … Posortować tablicę i “gołym okiem” zobaczyć duplikaty. Sortowanie quikiem to O(n)=(n*log_2(n)) i w dodatku potrzeba by zduplikować tablicę aby jej nie niszczyć. duuużo gorzej, ale proste i skuteczne.
Trzeci … zacząć budować kopiec. W trakcie można wyłapać duplikat. O(n)=(n*log_2(n)) i to w skrajnym przypadku : duplikat na końcu lub brak duplikatu. Nieco lepiej. Kopiec niestety pamięć potrafi zeżreć
tylko po to aby go potem do garbarni …hmmm… marnotrastwo.
Można by oczywiście najpierw sumę, potem kopiec/quick ;-).
Google twoim przyjacielem
jak później przeczytałem w komentarzach.
Pozdrawiam serdecznie,
Marcunio
Opublikowane 07 sierpnia 2008 o 17:47 ¶Invader:
Primo: Jeśli to cytat, to namiary na oruginał byłyby mile widziane i grzeczne.
Secundo: Nie do końca z tym O(1). Jeśli chcesz sprawdzić, czy elemant siedzi w haszyszu to owszem, jednakowoż na wejściu masz zwykłą tabelę i wkładamnie jej do hasza zajmie Ci O(n). Przy odrobinie pecha całą tabelę będziesz musiał przebiec. Rozmiar hasztabli to tez co najmniej rozmiar tabeli, czyli maleńkie marnotrawstwo będzie jak to czynisz li tylko po to aby zaraz wrzucić ją do grabarni.
O(n) + duplikat tabeli to lepiej niż O(nlogn) + duplikat.
Męczy mnie ta suma z iloczynem: instynkt macierzyński mówi, że to wystarczy, ale instynkt samozachowawczy każe być ostrzonym.
Pozdrawiam,
Opublikowane 12 sierpnia 2008 o 12:14 ¶Marcunio
P.S.
A czy praca za udziały w zyskach wchodzi w grę ?
Opublikowane 12 sierpnia 2008 o 12:18 ¶Dodaj komentarz