Forwarded from Timur
✅Задачка
📚Напишите функцию
возвращает новую строку, из которой удалены все
гласные буквы
👁🗨Примеры:
«
»
«
»
#task #python
«Remove Vowels» по Python📚Напишите функцию
remove_vowels(s), которая принимает строку и возвращает новую строку, из которой удалены все
гласные буквы
(a, e, i, o, u, y в любом регистре).👁🗨Примеры:
«
remove_vowels("Hello world")»
Hll wrld !«
remove_vowels("Python is great")»
"Pthn s grt"#task #python
Forwarded from Timur
✅Алгоритм
💡Объяснение:
Принцип работы основан на методологии "Разделяй и властвуй".
🔵Алгоритм имеет 3️⃣ этапа:
2. Мы должны выбрать pivot element (опорный элемент), есть много вариантов как мы
будем выбирать этот элемент, но мы воспользуемся самым простым, а именно будем брать
последний элемент массива.
3. Берём pivot и все элементы которые меньше pivot, располагаем слева от pivot,
все элементы которые больше pivot располагаем справа.
🔄И повторяем действия 2 и 3 пункт рекурсивно,
до тех пор пока массив не будет отсортирован.
⚙️Уточнение:
параметры
👁🗨Пример:
«
»
📉Сложность:
⌚️Время:
#algorithms #go
QuickSort(Быстрая сортировка) на Golang 💡Объяснение:
📚QuickSort - это алгоритм быстрой сортировки элементов в массиве.Принцип работы основан на методологии "Разделяй и властвуй".
🔵Алгоритм имеет 3️⃣ этапа:
1. На вход поступает не отсортированный массив. 2. Мы должны выбрать pivot element (опорный элемент), есть много вариантов как мы
будем выбирать этот элемент, но мы воспользуемся самым простым, а именно будем брать
последний элемент массива.
3. Берём pivot и все элементы которые меньше pivot, располагаем слева от pivot,
все элементы которые больше pivot располагаем справа.
🔄И повторяем действия 2 и 3 пункт рекурсивно,
до тех пор пока массив не будет отсортирован.
⚙️Уточнение:
параметры
maxIndex и minIndex это диапазон сортировки массива.slice - можно воспринимать как array, просто в golang slice это динамический массив.👁🗨Пример:
«
[9, 12, 9, 2, 17, 1, 6]»
[1, 2, 6, 9, 9, 12, 17]📉Сложность:
⌚️Время:
O(n log n)#algorithms #go
Forwarded from Timur
🟢Алгоритм
⚙️Суть алгоритма:
💡Начинаем с того что в
принимаем не отсортированный массив. Потом
идёт проверка если массив пустой или имеет только
1 элемент, мы считаем его отсортированным и завершаем
работу функции (или возвращаем передаваемый массив, если
реализация не через указатель). Дальше пробегаемся по
всему массиву и на каждой итерации первого цикла, мы
вызываем 2 цикл, который уже от текущего элемента
до нулевого элемента(то есть начало массива). И при
этом сравниваем текущий элемент с предыдущим, и
если текущей элемент окажется меньше предыдущего, то меняем местами
их в массиве, в противном случаи выходим из 2 цикла, и так до конца всего
массива. На выходи получаем отсортированный массив.
📉Сложность:
⌚️Время:
💾Память:
#algorithms #go
Insertion Sort(Сортировка вставки) на Golang ⚙️Суть алгоритма:
💡Начинаем с того что в
function insertionSort мы принимаем не отсортированный массив. Потом
идёт проверка если массив пустой или имеет только
1 элемент, мы считаем его отсортированным и завершаем
работу функции (или возвращаем передаваемый массив, если
реализация не через указатель). Дальше пробегаемся по
всему массиву и на каждой итерации первого цикла, мы
вызываем 2 цикл, который уже от текущего элемента
(*(nums[i])) до нулевого элемента(то есть начало массива). И при
этом сравниваем текущий элемент с предыдущим, и
если текущей элемент окажется меньше предыдущего, то меняем местами
их в массиве, в противном случаи выходим из 2 цикла, и так до конца всего
массива. На выходи получаем отсортированный массив.
📉Сложность:
⌚️Время:
O(n**2)💾Память:
O(1)#algorithms #go
Forwarded from Timur
✅Поиск самого часто встречающегося элемента в векторе на
📚Напишите функцию
и возвращает элемент, который встречается чаще всего.
Если таких элементов несколько, вернуть любой из них.
👁🗨Пример №1:
«
»
// or 1
👁🗨Пример №2:
«
»
// or 2 or 3
👁🗨Пример №3:
«
»
💡Решение:
На картинке
📉Сложность алгоритма:
⌚️Время -
💾Память -
#task #rust
Rust 📚Напишите функцию
most_frequent, которая принимает вектор и возвращает элемент, который встречается чаще всего.
Если таких элементов несколько, вернуть любой из них.
👁🗨Пример №1:
«
[1, 3, 2, 3, 4, 1, 3, 2, 1]»
3 // or 1
👁🗨Пример №2:
«
[1, 1, 2, 2, 3, 3]»
1// or 2 or 3
👁🗨Пример №3:
«
[10, 0, 2, -1, 2]»
2💡Решение:
📉Сложность алгоритма:
⌚️Время -
O(n)💾Память -
O(n)#task #rust
🟢
📚
которая позволяет создавать глобальное состояние для ваших приложений с минимальными
усилиями. Она часто используется в экосистемах, таких как React, и предоставляет
простой API для создания и управления состоянием в приложении.
⚙️Особенности:
➖
➖
➖
➖
⛓️Источники:
📑Doc: тут
💾GitHub: тут
#frontend #lib #js
Zustand библиотека управления состоянием.📚
Zustand — это библиотека управления состоянием для JavaScript и TypeScript, которая позволяет создавать глобальное состояние для ваших приложений с минимальными
усилиями. Она часто используется в экосистемах, таких как React, и предоставляет
простой API для создания и управления состоянием в приложении.
⚙️Особенности:
➖
Минимальный и гибкий API➖
Реактивность➖
Производительность➖
Без провайдеров/контекста⛓️Источники:
📑Doc: тут
💾GitHub: тут
#frontend #lib #js
Forwarded from Timur
Forwarded from Timur
✅Задача «
📚Дано целое число
пока в результате не останется только одна цифра, и верните ее.
👁🗨Пример 1:
«
»
👁🗨Пример 2:
«
»
💡Решение:
В решении используется чистая математика,
и скажу честно я не смог решить это задачу
за O(1) самостоятельно. Меня довольно сильно удивило
такое короткое и лаконичное решение задачи,
хотя казалось бы что надо использовать цикл/рекурсию
для решения(что я по началу и сделал ) но понял что сложность
алгоритма в таком случаи было бы O(n) или что ещё хуже O(n**2).
В задачи было сказано что её можно решить за O(1), что меня естественно удивило.
И про гуглив решение нашёл как решить эту задачу за время O(1).
📉Сложность:
⌚️Время:
💾Память:
#algorithms #java
Add Digits»📚Дано целое число
num, многократно складывайте все его цифры, пока в результате не останется только одна цифра, и верните ее.
👁🗨Пример 1:
«
num = 38»
2👁🗨Пример 2:
«
num = 1701»
9💡Решение:
и скажу честно я не смог решить это задачу
за O(1) самостоятельно. Меня довольно сильно удивило
такое короткое и лаконичное решение задачи,
хотя казалось бы что надо использовать цикл/рекурсию
для решения(что я по началу и сделал ) но понял что сложность
алгоритма в таком случаи было бы O(n) или что ещё хуже O(n**2).
В задачи было сказано что её можно решить за O(1), что меня естественно удивило.
И про гуглив решение нашёл как решить эту задачу за время O(1).
📉Сложность:
⌚️Время:
O(1)💾Память:
O(1)#algorithms #java