Задачи върху списъци, сортиране и търсене

by Ivan Ivanov

Artwork: Иван Иванов 12в

This free e-book was created with
Ourboox.com

Create your own amazing e-book!
It's simple and free.

Start now

Задачи върху списъци, сортиране и търсене

by

Artwork: Иван Иванов 12в

  • Joined May 2022
  • Published Books 1

В различни интервюта биха тествали различни неща, например:

  • Дали можете да пишете код (и дали кодът, който пишете, е хубав);
  • Дали знаете популярни алгоритми и структури данни;
  • Как бихте подходили към непознат проблем;
  • Дали бихте проявили креативност при решаване на нестандартен проблем;
  • Как бихте design-нали не-твърде-сложна но не и тривиална система;
  • Други.

Най-често добрите въпроси са комбинация на две или повече от тези неща.

2

I.Алгоритмични задачи

При този тип задачи трябва да измислите алгоритъм или структура данни, която да се справя ефективно с даден проблем. Понякога има “врътка”, чието откриване води до решение на задачата чрез стандартен алгоритъм. В повечето интервюта след като измислите как да решите задачата, трябва да напишете и имплементация чрез код или псевдокод.

 

 

3

1.Сливащи се свързани списъци:

 

Дадени са ви указатели към първите елементи на два ациклични едносвързани списъка. Можете ли с константна памет и линейно време да определите дали в някой елемент единият списък не се “слива” във втория (тоест двата да завършват в един и същ елемент)? Ако да, можете ли да намерите кой е първият им общ елемент? Опишете алгоритъма си.

 

Решение:(txt1)

 

4

2.Точно едно повтарящо се число:

 

Дадени са ви N числа между 1 и N-1, включително. Всички числа са различни, с изключение на едно, което се повтаря. Намерете кое е то?

 

Решение:(txt2)

 

5

II.Имплементационни задачи:

Тези задачи обикновено имат минимално мислене и по-скоро се изисква добро познание от програмните езици и писането на код като цяло. Изисква се писане на код, като почти цялата оценка за задачата зависи от него.

 

1.Най-нисък бит:

 

Дадено ви е положително цяло число X. Намерете неговия най-нисък ненулев бит (lowest bit) или по-точно числото, което представя той (ако индексът е 3, то върнете 23 = 8).
Примери: за числото 42 (101010) трябва да върнете 2, докато за 88 (1011000) трябва да върнете 8. Най-ниските битове са най-надясно в двоичния запис на числото.

 

Решение:(txt3)

6

2.Избор на град според населението му:

Напишете функция, която по дадено множество от градове и тяхната популация, избира някой от тях, като шансът даден град да бъде избран е пропорционален на броя жители в него. Например ако градовете са София (1,263,328 жители), Стара Загора (150,081 жители), Варна (350,064 жители) би избрала София с шанс 71.638%, Стара Загора с шанс 8.511% и Варна с шанс 19.851%.

 

Решение:(txt4)

7

III.Езикови познания

 

Това са по-скоро въпроси, които могат да ви зададат по време на интервю. В тях рядко се изисква писане, но трябва добре да познавате езика за програмиране и като цяло различни програмни термини и идиоми.

 

1.Каква е разликата между “method” и “function”?

 

Отговор:(txt5)

8

IV.Нестандартни задачи

Това са малко по-различни логически задачи, които тестват как разсъждавате и колко добре бихте апроксимирали нещо, за което нямате много информация, само изхождайки от логика и частични факти. От няколко години вече не се задават по повечето интервюта, тъй като са твърде нестандартни и често пропускат добри кандидати.

 

1.Колко бензиностанции има в България?

 

Отговор:(txt6)

9

 

Благодаря за отделеното внимание!!!

10
This free e-book was created with
Ourboox.com

Create your own amazing e-book!
It's simple and free.

Start now

Ad Remove Ads [X]