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
✅
📚Условие задачи: дается строка и целое число
развернуть первые
📚Если есть несколько символов больших k, необходимо развернуть все из
них. Если есть меньше, чем 2k символов, но при этом больше или равно k
символов, то необходимо оставить все как есть.
👁🗨Примеры:
«
»
«
»
📈Сложность:
⌚️Время:
💾Память:
#task #python
«Reverse string» на Python📚Условие задачи: дается строка и целое число
k, необходимо развернуть первые
k символов на каждые 2k символов, отсчитываемых с начала.📚Если есть несколько символов больших k, необходимо развернуть все из
них. Если есть меньше, чем 2k символов, но при этом больше или равно k
символов, то необходимо оставить все как есть.
👁🗨Примеры:
«
string = "abcdefg", k = 2»
"bacdfeg"«
string = "abcd", k = 2»
"bacd"📈Сложность:
⌚️Время:
O(n)💾Память:
O(n)#task #python
Forwarded from Timur
🟢Алгоритм сортировки слиянием (
📚Описание:
Сортировка слиянием — это один из эффективных алгоритмов
сортировки, основанный на принципе разделяй и властвуй.
Алгоритм состоит из двух этапов:
1. Разделение массива на подмассивы
2. Слияние подмассивов в отсортированном порядке
Предположим, у нас есть массив:
- Разделяем массив на 2 части
- И так рекурсивно делим массив до одного элемента в нём
- Дальше Соединяем обратно
📉Сложность:
⌚️Время:
💾Память:
#algorithms #go
Merge Sort) на Golang 📚Описание:
Сортировка слиянием — это один из эффективных алгоритмов
сортировки, основанный на принципе разделяй и властвуй.
Алгоритм состоит из двух этапов:
1. Разделение массива на подмассивы
mergeSort().2. Слияние подмассивов в отсортированном порядке
mergeTwoSlice().Предположим, у нас есть массив:
[5, 3, 8, 6, 2, 7, 4, 1].- Разделяем массив на 2 части
left = [5, 3, 8, 6]; right = [2, 7, 4, 1]- И так рекурсивно делим массив до одного элемента в нём
- Дальше Соединяем обратно
[5] и [3] -> [3, 5], [8] и [6] -> [6, 8] и т.д📉Сложность:
⌚️Время:
O(n log n)💾Память:
O(n)#algorithms #go