logo

Iskustvo intervjua za Goldman Sachs | Set 19

Imao sam intervju s GS-om u njihovom uredu u Bengaluruu. Imam 4 godine iskustva u razvoju full stack-a koristeći Javu. Dobio sam poziv od konzultanta.
    1. kolo
    1. Koji su vam koncepti ugodni unutar Jave? Rekao sam zbirke. Pitao je koje ste tečajeve prikupljanja koristili? Rekao sam HashMap ArrayList i HashSet.
    2. Kada biste koristili Set, a kada popis? Rekao sam da Set podržava jedinstvene elemente koji nisu nula, a List nema to ograničenje. Dakle, ako želim jedinstvene elemente, koristit ću Set. Pitao je još za što? Rekao sam vrstu upita koji će se izvršiti na zbirci. Poput pretraživanja. Pitao je neki primjer? Rekao sam – baza zaposlenika. Zaposlenici moraju biti jedinstveni kako bismo mogli koristiti popis i pretraživati ​​binarnim pretraživanjem ili sličnom tehnikom jer su općenito poredani nekim redoslijedom. Ali mislim da je očekivao O(1) odgovor vremena traženja ili Set. Objasnio sam rad HashMapa i HashSeta i kako bi to pomoglo programeru da lako postigne jedinstvenost elemenata, ali ispitivač nije bio uvjeren mojim odgovorom na njegovo izvorno pitanje.
    3. Što je ugovor za equals() i hashCode()? Što ako je jedno nadjačano, a drugo nije?
    4. Pronađite drugi minimum u zadanom nizu .
    5. Pronađite točku zakretanja u sortiranom i zakrenutom nizu.
    6. Ima li pitanja za mene?
    2. kolo
    1. Ukratko opišite svoje radno iskustvo.
    2. Dajte pregled dizajna vašeg nedavnog projekta.
    3. Pretpostavimo da imam korisničko sučelje u kojem postoji popis ili tablica stavki i svaka stavka ima atribut dobiti, atribut popusta itd. Kako osigurati da više korisnika ne ostavlja stanje nijedne stavke nedosljednim. Korisnik može ažurirati atribute ili neki drugi web servis može učiniti isto. Predložio sam sinkronizaciju metoda postavljača stavke. Pitao je kako razvrstati predmete. Rekao sam da će se stavke nalaziti u popisu nizova i implementirao sučelje Comparable. Tražio je radnu šifru. Kad sam napisao izraz unutar metode compareTo(), rekao je da dizajn nije fleksibilan jer postoji tvrdo kodiranje kriterija sortiranja. Rekao je da kada netko želi sortirati prema drugom atributu, postalo bi nemoguće upravljati tolikim brojem dvostrukih objekata. Rekao sam da to možemo učiniti s uzorkom tvorničke metode. Time je zapravo prekinuo krug intervjua. Negdje između spomenuo je sučelje Comparator i ja sam mu objasnio kako radi. Rekao sam da je to dobar izbor ako se ne želi modificirati postojeće klase. Mislim da je očekivao implementaciju metode compare() jer to ne bi zahtijevalo dvostruke objekte, a sortiranje prema različitim kriterijima može se izvršiti jednostavnom implementacijom Comparator-a u različitim klasama, jednu klasu za svaki kriterij sortiranja, a zatim pozivanjem metode sort() klase Collections s tom implementacijom Comparator-a.
    4. Ima li pitanja za mene?
    Rečeno mi je da ode za danas. Savjet: Pokušajte ne spominjati uzorke dizajna osim ako se to od vas traži ili ako imate iskustva u rješavanju problema s uzorcima dizajna. Slušajte sugovornika i budite oprezni. Daju savjete. U 1. krugu također sam pogriješio u pitanju o rotiranom nizu. Dao je test slučaj u kojem moj kod ne bi uspio. Ispravio sam zamku. Dovoljno spavajte prije dana intervjua. Svi zadaci iz prakse za Goldman Sachs ! Napravi kviz