ПредишенСледващото

В тази статия ще се спра на проблемите и въпросите, които чакат за програмисти по време на интервюто по заетостта.

15 Задачи в интервю за програмист, програмист библиотека

Анкетьорите не са оригинални, и същия въпрос може да се намери при 3-5 различни интервюта.
Но дори и опитни програмисти се намират в една стресова ситуация, често се губи и не може да намерите отговор на един доста прост въпрос. Затова предлагам да преминете тренировка, да проверите знанията си, а в същото време и разгледайте любимите въпроси на интервюиращите. Не е изключено, че това е за тях, че трябва да отговорите на следния интервюто.
Структури от данни и алгоритми въпроси - независимо от тяхната специализация основната част от всяко интервю за програмисти

Всички програмисти знаят, че средната елемент в LinkedList е лесно да се намери, да определи дължината на списъка, последователно преминава всички възли, докато doydosh да NULL в първото преминаване. След това, като половината от тях преминават през втория пропуск. Когато те са помолени да се реши този проблем в един пас, много от тях са изгубени.

Повечето от целите, посочени в интервюто, е доста просто решение, и седнал в тиха среда, ще го намерите себе си, без много проблеми.

През този проблем, въведете две насоки достатъчни. Произход ще се увеличи, когато се преминава списък на възел, а вторият - на преминаването 2 места. В момент, когато втората показалеца ще стигнат до края на списъка (да препъне NULL), първият, който сочи към средата на списъка.
Успешно се справя с този проблем? Вземете следващата.

Решенията на изходния код

Чрез задаване на подобни въпроси, партньора си, разбира се, не иска да чуе учените от определението на учебник, или да получите линк от Уикипедия, и оценка на собствения си разбиране на разликите между тези два вида структури от данни.
Стек и всички подобни липса на свободен достъп до всички елементи от структурата на данните. Основната разлика се състои в това, че на комина - е структура от тип LIFO (Last първа изходяща), където е възможно само достъп за последния добавен елемент, и тя се отстранява по метода на «поп» към елементите добавени към него. Когато топчето се добавя нов елемент, достъпно само го получава.
Включете се отнася до вида на FIFO (First In First Out), т.е. тя е на разположение само на добавяне на първия елемент. В случай на отстраняване на разположение на второ място, и т.н.

Този въпрос често по време на интервюто изслушани от тези, които са в състояние бързо да намерите дубликат 1 елемент в масива. За да се реши този проблем, можете да използвате HashMap. Както несъмнено знаете, HashMap магазини двойки данни - на ключ / стойност, както и създаване на набор от карти, можете лесно да намерите всички повторения и техните номера.

И в двата списъка възли са свързани с указатели. Само свързан списък показалка от всеки възел води само до следващия, и преход е възможен само за него, че е само в една посока. И в един двойно свързан от всеки възел, с изключение на първия и последния, имат възможност да отидат както към следващия, и на предишния възел, което е, да се движат и в двете посоки.

Ако изведнъж някой не знае, числата на Фибоначи - последователност, в която всяко следващо число след 1 е сумата от двете, която го предхожда. Това означава, че броят на Фибоначи номера е както следва: 1,1, 2, 3, 5, 8, 13, 21 ...

За да се реши този проблем можете да:

Binary или двоично дърво за търсене - структура от данни, в която всеки възел може да има от 1 до 2 възли (деца), или изобщо.

Местоположение на данни в двоичен дърво има редица ограничения:

  1. Както при всички дървета, всяко двоично дърво възел може да има повече от един родител.
  2. Данните в дървото се разпределят в зависимост от техните стойности. Ако стойността на подвезелът (дете) е по-малка от стойността на възела (майка), този под-възел става на левия детето на левия възел или ако лявата възел вече съществува. Съответно, ако стойността е по-високите стойности възел възел, става прав или надясно дете.

Двоични дървета се използват при изпълнението на асоциативни масиви и комплекти, например, TreeSet или дървовидна карта, а в някои алгоритми на компютърната геометрия.

Този въпрос ви дава възможност да демонстрирате своите умения владение на стандартни методи (лицеви и поп), за да работи с тази структура на данните. В тази задача, ще трябва да се използва масив или свързан списък за съхранение на елементите.
Можете да напишете, например, стандартна програма калкулатор.

Имайте предвид, че разрешаването на даден проблем по време на интервюто, е желателно да се изясни всяка логична стъпка интервюиращия. В първоначалното интервю да се оцени не само скоростта и точността на решението на задачите, но и логиката на мислене като цяло.
Ето защо понякога непълно решение на сложен проблем ще даде възможност на интервюиращия да оцени знанията си като достатъчна за свободната длъжност.
Дори ако сте опитен програмист с десетки реализира портфейл проекти, не се мързелив преди интервюто да се повтаря на теорията. В края на краищата, отговорът е "добре, че работи някъде така ... и като цяло, през последните 3 години, аз никога не са използвали тази структура данни" е малко вероятно да отговарят на интервюиращия.
Някои материали са преведени от този източник.

Творчеството и късмет за вас по време на интервюто!


Свързани статии

Подкрепете проекта - споделете линка, благодаря!