/sda2021-22

Primary LanguageC++MIT LicenseMIT

Структури от Данни и Алгоритми 2021-2022, СИ, ФМИ към СУ

Идеята на това репо е да съхраним работата си през целия семестър в курса по СДА и евентуално да послужи на проявяващите интерес за в бъдеще като референтна точка в собствените им премеждия с курса. 😁

Събрали сме решения на всички задания през семестъра, както и условията им - веднъж пренесени тук в markdown формат, но и със съответните линкове към оригиналните задания в HackerRank, върху чиято валидност обаче нямаме контрол, така че се допуска в някакъв момент и да са вече невалидни.

Отворени сме за всякакви коментари, въпроси и предложения, макар и предоставените материали да са напълно неофициални, а тези от тестовете - далеч от оптимални или изпипани откъм красота и прилежност... Но нека все пак се има предвид, че сме се въздържали от всякакви следварителни корекции с цел запазване на автентичността на всеки символ, така че всички решения от тестовете и изпита са създадени в рамките на времевото ограчение. 😃

Съдържание

Всички задания, подредени хронологично

Homework 01: Входни задачи

  1. Първо контролно (Medium)

  2. Футболен отбор (Hard)

  3. Уроци по английски (Medium)

Homework 02: Сортиране

  1. Евтини подаръци (Medium)

  2. Logging, monitoring, alerting (Medium)

  3. Отбор за милиони (Medium)

  4. Добрите момчета от залите (Medium)

Homework 03: Търсене

  1. Точен куб (Easy)

  2. Тема за проект (Medium)

  3. Демони (Medium)

  4. Weird Queries (Hard)

Test 01: Сортиране и търсене

  1. Сортиране (Medium)

  2. Резултати от турнир (Medium)

Homework 04: Свързан списък

  1. Insert a node at a specific position in a linked list (Easy)

  2. Find merge point of two lists (Easy)

  3. Delete a node (Easy)

  4. Exam (Medium)

  5. ZUMA (Hard)

Homework 05: Стек и опашка

  1. Лекции (Medium)

  2. Bridge battle (Medium)

  3. Сума на минимални елементи (Medium)

  4. Игри на волята (Hard)

Test 02: Свързан списък, стек и опашка

  1. Изтриване на елемент от списък (Medium)

  2. Броене на елемент (Medium)

  3. Групиране на елементи (Medium)

Homework 06: Binary Search Tree (BST)

  1. Подаръци 1 (Medium)

  2. Горен изглед (Medium)

  3. Няма К-то-мато (Medium)

Homework 07: Balanced Search Tree (AVL)

  1. Маската на Зоро (Easy)

  2. Minimum xor (Medium)

  3. Smaller (Hard)

Test 03: Search trees (Binary & Balanced)

  1. Манипулации на листа на дърво (Medium)

  2. Tree specific print (Medium)

Homework 08: Heap (пирамида)

  1. Елитизъм (Medium)

  2. Fullstack developer (Easy)

  3. Контролни (Hard)

  4. Call center (Medium)

Homework 09: Hashtable

  1. Super mario (Easy)

  2. Weighing animals (Medium)

  3. Дълъг подниз (Hard)

Test 04: Heap

  1. Обработка на заявки (Medium)

Test 05: Hashtable

  1. Шифър (Medium)

  2. Нечетен брой срещания (Medium)

Homework 10: Graph (BFS & DFS)

  1. I use arch btw (Medium)

  2. Cinema 2021 (Medium)

  3. Нова азбука (Medium)

Homework 11: Shortest path (Dijkstra)

  1. Shortest paths (Medium)

  2. Tunnel maps (Hard)

  3. Two sets (Hard)

Test 06: Graph (BFS, DFS, Shortest path)

  1. Път в граф (Easy)

  2. Преброяване на области (Medium)

Homework 12: Minimal Spanning Tree (MST)

  1. Въпроси (Medium)

  2. Строене на пътища (Medium)

  3. Скорости (Medium)

Homework 13: Euler and Hamilton paths | P and NP

  1. Super Hamilton (Medium)

  2. Минимална дълбочина (Medium)

  3. The Islander (Medium)

Test 07: Final test

  1. Държавната администрация (Medium)

  2. Суеверия (Medium)

Exam 01: Изпит част 1 (задачи за 3-ка)

  1. Unique rows (Easy)

  2. SDA Exam (Easy)

Exam 02: Изпит част 2 (задачи за майстори)

  1. Linked numbers (Medium)

  2. Puncakes (Medium)

  3. Leafs (Hard)

Полезни връзки

Някои полезни връзки

Платформи

USACO-Guide - Безплатна платформа с много състезателни задачи, теория и решения
LeetCode - Платформа с подготвителни задачи за интервюта, както и онлайн състезания
HackerRank - Платформа с подготвителни задачи за интервюта

Литература

Competitive Programmer’s Handbook
Tech Interview Handbook

Полезни канали и курсове

MIT 6.006 Introduction to Algorithms, Spring 2020
Errichto