🟢Реализация Графа (
❓Какие свойства есть у Графа(Graph) ?
📚Как мы выяснили ранее, граф состоит из Рёбер(Edge) и Узлами(Node),
их можно представить в виде двух мерного массива int[][] но это не эффективно,
По этой причине в основе понимания Графа(Graph), стоит понимать такие структуры данных
как Деревья(Tree), Хэш таблицы(HashMap), Связанный списки и ещё не из структур данных Рекурсии. Если эти
структуры данных вам понятны, значит и эта структура будет понятно.
💡Окей. Давайте разберём Graph на составные, а именно Edge и Node.
Node - это обЪект имеющий свойства
*
*
*
*
*
#algorithms #java
Graph) на Java (Pt 2)❓Какие свойства есть у Графа(Graph) ?
📚Как мы выяснили ранее, граф состоит из Рёбер(Edge) и Узлами(Node),
их можно представить в виде двух мерного массива int[][] но это не эффективно,
По этой причине в основе понимания Графа(Graph), стоит понимать такие структуры данных
как Деревья(Tree), Хэш таблицы(HashMap), Связанный списки и ещё не из структур данных Рекурсии. Если эти
структуры данных вам понятны, значит и эта структура будет понятно.
💡Окей. Давайте разберём Graph на составные, а именно Edge и Node.
Node - это обЪект имеющий свойства
*
value(может быть любым типом данных)*
edges(все узлы которые есть у node)*
parents(все вершины которые ведут к текущей node, то есть родители node )Edge - это обЪект имеющий свойства *
adjacentNode - соседний узел *
weight - вес ребра(Каждое ребро имеет вес, в нашем примере для простоты все веса всех ребер равны 1)#algorithms #java
🟢Реализация Графа(
❓Что такое Ребро(Edge) ?
💡Окей. Мы с вами уже разобрали какими свойствами обладаем граф,
теперь поговорим в отдельности о Edge.
есть ребра однонаправленные например:
двунаправленные например:
⚙️Поговорим теперь о коде:
указывающий на
❓Что такое Узел(Node) ?
💡Окей. Давай теперь поговорим о node(Узел).
тип данных который нам нужен. Так же мы
имеем
И L
#algorithms #java
Graph) на Java (Pt 3)❓Что такое Ребро(Edge) ?
💡Окей. Мы с вами уже разобрали какими свойствами обладаем граф,
теперь поговорим в отдельности о Edge.
Edge - это ребро как мы уже поняли, каждое ребро имеет вес и направление,есть ребра однонаправленные например:
Node -Edge--> Node; и двунаправленные например:
Node <--Edge--> Node⚙️Поговорим теперь о коде:
Edge - это класс имеющий в себе поля adjacentNodeуказывающий на
node и weight это вес самого узла.❓Что такое Узел(Node) ?
💡Окей. Давай теперь поговорим о node(Узел).
Node является соединяющей частью Ребер(Edge).Node часто имеет знамение(value), хранящие любой тип данных который нам нужен. Так же мы
имеем
LinkedHashSet<Edge> который хранит в себе все Edges.И L
inkedHashMap<Node, Edge> которая хранит в себе key: Node; value: Edge. #algorithms #java
Forwarded from Timur
✅Задача для «
У нас есть method
Нужно найти число
возрастанию. И в итоги вернуть
иначе
👁🗨Пример №1:
«
»
👁🗨Пример №2:
«
»
💡Решение:
В начел идёт проверка матрицы, если проверка не прошла
успешно return false. Инициализируем m, n, i, j.
m - длина row, n - длина col. i, j - это указатели.
Обход начинаем с верхнего правого угла и до конца matrix.
По этой причине мы будем если matrix[i][j] > target то j-- иначе i++ .
📉Сложность алгоритма в решении:
⌚️Время:
💾Память:
#task #java
searchMatrix » Java У нас есть method
searchMatrix(), в качестве параметров принимаем int[][] matrix иint target: searchMatrix(int[][] matrix, int target).Нужно найти число
target в matrix, при этом у нас по m, n matrix отсортированы по возрастанию. И в итоги вернуть
return (boolean) если есть число в matrix то true,иначе
false. 👁🗨Пример №1:
«
new int[][] {
{1, 2, 3, 4, 5},
{2, 3, 4, 5, 6},
{3, 4, 5, 6, 7}
}, 5»
true👁🗨Пример №2:
«
new int[][] {
{1, 2, 3, 4, 5},
{2, 3, 4, 5, 6},
{3, 4, 5, 6, 7}
}, 100»
false💡Решение:
успешно return false. Инициализируем m, n, i, j.
m - длина row, n - длина col. i, j - это указатели.
Обход начинаем с верхнего правого угла и до конца matrix.
По этой причине мы будем если matrix[i][j] > target то j-- иначе i++ .
📉Сложность алгоритма в решении:
⌚️Время:
O(m + n)💾Память:
O(1)#task #java
Forwarded from Timur
✅Задачка по Go
📚Условие:
Напишите функцию, которая принимает список
из этого списка. Домен — это часть адреса после символа
🔍Нюанс:
Если эту задачу решать на
самому писать (что я и сделал).
💡Решение:
Сверху есть картинка кода реализации структуры данных Set.
И так же есть картинка с решением задачи.
👁🗨Пример:
«
»
#task #go
📚Условие:
Напишите функцию, которая принимает список
email-адресов и возвращает уникальные домены из этого списка. Домен — это часть адреса после символа
@.🔍Нюанс:
Если эту задачу решать на
Golang, то структуру данных Set придётсясамому писать (что я и сделал).
💡Решение:
И так же есть картинка с решением задачи.
👁🗨Пример:
«
["user1@example.com", "user2@test.com", "user3@example.com", "user4@sample.com"]»
{"example.com", "test.com", "sample.com"}#task #go
Forwarded from Timur
✅Задача на
📚Дано целое
квадратных чисел, сумма которых равна
💡Идеальный квадрат - это целое число, равное квадрату
целого числа (например, 1, 4, 9 и 16).
💡Подсказка:
Для решение задачи, можно использовать
алгоритм .
👁🗨Пример №1:
«
»
// 12 = 4 + 4 + 4
👁🗨Пример №2:
«
»
// 13 = 4 + 9
#task #go
Go «Perfect Squares»📚Дано целое
число n, верните наименьшее число идеальных квадратных чисел, сумма которых равна
n.💡Идеальный квадрат - это целое число, равное квадрату
целого числа (например, 1, 4, 9 и 16).
💡Подсказка:
алгоритм
<<Динамическое программирование>>👁🗨Пример №1:
«
n = 12»
3// 12 = 4 + 4 + 4
👁🗨Пример №2:
«
n = 13»
2// 13 = 4 + 9
#task #go