Forwarded from Timur
✅DFS algorithm
📚Алгоритм поиска в глубину (DFS, Depth First Search) обходит граф так,
что он идет "вглубь" от начальной вершины по каждому пути до конца,
прежде чем вернуться назад и исследовать следующий путь. Давайте разберем
его пошагово.
⚙️Как работает алгоритм:
💡1.Начинаем с начальной вершины (например, 0).
💡2.Помечаем её как посещённую.
💡3.Идем по всем её смежным вершинам.
💡4.Если соседняя вершина ещё не посещена, то:
- Переходим к ней и повторяем процесс (углубляемся).
💡5.Если все соседи посещены или их нет, возвращаемся назад и ищем другие пути.
💡6.Продолжаем, пока не обойдем все достижимые вершины.
📑Читать: тут
#algorithms #cpp
С++ - Поиск в глубину 📚Алгоритм поиска в глубину (DFS, Depth First Search) обходит граф так,
что он идет "вглубь" от начальной вершины по каждому пути до конца,
прежде чем вернуться назад и исследовать следующий путь. Давайте разберем
его пошагово.
⚙️Как работает алгоритм:
💡1.Начинаем с начальной вершины (например, 0).
💡2.Помечаем её как посещённую.
💡3.Идем по всем её смежным вершинам.
💡4.Если соседняя вершина ещё не посещена, то:
- Переходим к ней и повторяем процесс (углубляемся).
💡5.Если все соседи посещены или их нет, возвращаемся назад и ищем другие пути.
💡6.Продолжаем, пока не обойдем все достижимые вершины.
📑Читать: тут
#algorithms #cpp
Forwarded from Timur
✅Задача на Python:
📚Напишите функцию, которая принимает массив из 10 (строго 10 элементов)
целых чисел (от 0 до 9) и возвращает строку из этих чисел в виде
телефонного номера.
👁🗨Примеры:
#task #python
📚Напишите функцию, которая принимает массив из 10 (строго 10 элементов)
целых чисел (от 0 до 9) и возвращает строку из этих чисел в виде
телефонного номера.
👁🗨Примеры:
create_phone_number([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) # => returns "(123) 456-7890"
create_phone_number([5, 2, 1, 3, 7, 1, 2, 0, 2, 2]) # => returns "(521) 371-2022"
#task #python
Forwarded from Timur
✅Sort Merge in Python
📚
разбивает массив на две части, рекурсивно сортирует их, а затем
объединяет в один отсортированный массив.
⚙️Принцип работы:
➖Разделение: массив разбивается на две равные части.
➖Сортировка: каждая часть сортируется рекурсивно.
➖Слияние: два отсортированных подмассива объединяются в один.
📉Сложность:
#algorithms #python
📚
Сортировка слиянием — это алгоритм "разделяй и властвуй", который разбивает массив на две части, рекурсивно сортирует их, а затем
объединяет в один отсортированный массив.
⚙️Принцип работы:
➖Разделение: массив разбивается на две равные части.
➖Сортировка: каждая часть сортируется рекурсивно.
➖Слияние: два отсортированных подмассива объединяются в один.
📉Сложность:
O(n log n)#algorithms #python
Forwarded from Timur
✅Задача для Java
📚Дан массив целых чисел
и целочисленный
📚Напишите функцию для поиска target в
то верните его индекс. В противном случае верните значение -1.
⚙️Необходимо написать алгоритм со сложностью выполнения O(log n).
👁🗨Пример №1:
«
» 4
👁🗨Пример №2:
«
» -1
#task #java
«Binary Search»📚Дан массив целых чисел
nums, отсортированный в порядке возрастания, и целочисленный
target.📚Напишите функцию для поиска target в
nums. Если target существует, то верните его индекс. В противном случае верните значение -1.
⚙️Необходимо написать алгоритм со сложностью выполнения O(log n).
👁🗨Пример №1:
«
nums = [-1,0,3,5,9,12], target = 9» 4
👁🗨Пример №2:
«
nums = [-1,0,3,5,9,12], target = 2» -1
#task #java
Forwarded from Timur
✅Конвертер
📚Напишите скрипт, который принимает путь к файлу
содержимое в формат
но с расширением
👁🗨Пример:
⚙️
⚙️
#task #python
CSV в JSON на Python📚Напишите скрипт, который принимает путь к файлу
CSV, конвертирует его содержимое в формат
JSON и сохраняет результат в новый файл с тем же именем, но с расширением
.json.👁🗨Пример:
⚙️
data.csv:id,name,age
1,Alice,30
2,Bob,25
3,Charlie,35
⚙️
data.json: [
{"id": "1", "name": "Alice", "age": "30"},
{"id": "2", "name": "Bob", "age": "25"},
{"id": "3", "name": "Charlie", "age": "35"}
]
#task #python
Реализация простого
📚Создание простой версии
key типа string, value типа int. Для решение проблемы с коллизии я
использовал алгоритм "Прямой адресации".
------------------------------
⚙️Кратко о коде:
➖#define FILL_FACTOR 75 - это параметр который говорит когда стоит расширять HashMap.
Если количество элементов if this->count * 100 >= this->capacity * FILL_FACTOR то мы расширяем наш HashMap, этим занимается realloc().
➖int get() - Просто выдаёт значение по ключу
➖long hashed() - это функция преобразует key в хэш
➖void init() - инициализируем и выделяем память на наш
➖typedef struct {} Item - Описывает элемент внутри HashMap.
➖elements - элементы в
➖capacity - выделенный размер для элементов в
➖count - количество заполненных элементов в
------------------------------
📑Почитать о работе
#algorithms #cpp
HashMap на C++ 📚Создание простой версии
HashMap на с++, key типа string, value типа int. Для решение проблемы с коллизии я
использовал алгоритм "Прямой адресации".
------------------------------
⚙️Кратко о коде:
➖#define FILL_FACTOR 75 - это параметр который говорит когда стоит расширять HashMap.
Если количество элементов if this->count * 100 >= this->capacity * FILL_FACTOR то мы расширяем наш HashMap, этим занимается realloc().
➖int get() - Просто выдаёт значение по ключу
➖long hashed() - это функция преобразует key в хэш
➖void init() - инициализируем и выделяем память на наш
HashMap.➖typedef struct {} Item - Описывает элемент внутри HashMap.
➖elements - элементы в
HashMap.➖capacity - выделенный размер для элементов в
HashMap.➖count - количество заполненных элементов в
HashMap.------------------------------
📑Почитать о работе
HashMap: тут#algorithms #cpp
🟢Задача на С++:
📚Завершите решение так, чтобы оно разделило строку на пары
из двух символов. Если строка содержит нечетное количество
символов, то следует заменить пропущенный второй символ в
последней паре символом подчеркивания ('_').
👁🗨Примеры:
« "
» ["ab", "c_"]
« "
» ["ab", "cd", "ef"]
#task #cpp
📚Завершите решение так, чтобы оно разделило строку на пары
из двух символов. Если строка содержит нечетное количество
символов, то следует заменить пропущенный второй символ в
последней паре символом подчеркивания ('_').
👁🗨Примеры:
« "
abc" » ["ab", "c_"]
« "
abcdef" » ["ab", "cd", "ef"]
#task #cpp
❤2
Forwarded from Timur
✅drawDB — удобный инструмент для проектирования баз данных📚Редактор диаграмм, работающий прямо в браузере — даже без регистрации.
С помощью
drawDB можно всего за несколько кликов создавать схемы, экспортировать SQL-сценарии и настраивать интерфейс под свои задачи.
⚙️Инструмент поддерживает: MySQL, PostgreSQL, SQLite, MariaDB и SQL Server.
Его также легко развернуть локально через npm или запустить с помощью Docker.
🔼drawdb.app
🔼GitHub
#service #web
🟢Задача для Python
📚Дан целочисленный массив
триплетов, выбранных из массива, которые могут образовывать
треугольники, если мы примем их за длины сторон.
👁🗨Пример 1:
«
»
💡Пояснение: могут быть такие комбинации: 2,3,4 (с первой 2),
2,3,4 (со второй 2) и 2,2,3
👁🗨Пример 2:
«
»
👁🗨Пример 3:
«
»
👁🗨Пример 4:
«
»
#task #python
«Valid Triangle Number»📚Дан целочисленный массив
nums. Нужно вернуть количество триплетов, выбранных из массива, которые могут образовывать
треугольники, если мы примем их за длины сторон.
👁🗨Пример 1:
«
nums = [2,2,3,4]»
3💡Пояснение: могут быть такие комбинации: 2,3,4 (с первой 2),
2,3,4 (со второй 2) и 2,2,3
👁🗨Пример 2:
«
nums = [4,2,3,4]»
4👁🗨Пример 3:
«
nums = [6, 4, 9, 7, 8]»
10👁🗨Пример 4:
«
nums = [10, 10, 10, 10]»
4#task #python