Data New Gold
Вещает 🤓 Выпускник МФТИ 🔝 Product Analyst InDrive, YClients, Ozon и Рук аналитики TalentTech (Фоксфорд и Нетология) - @Analyst_Vladimir Канал про карьеру и обучение Аналитике данных и Продуктовой аналитике ЧАТ для общения - https://t.me/DataNewGoldchat
Show more- Subscribers
- Post coverage
- ER - engagement ratio
Data loading in progress...
Data loading in progress...
Курс начинается с важнейших разделов школьной математики, включая кружковые и олимпиадные сюжеты, и заканчивается продвинутыми разделами высшей математики необходимыми для сдачи экзаменов в ШАД. Курс подойдёт как людям с хорошей, но забытой, математической подготовкой, так и тем, кто лишь хорошо владеет (или когда-то владел) школьной математикой.
def sort_squared_array(arr):
n = len(arr)
result = [0] * n
left, right = 0, n - 1
index = n - 1
while left <= right:
left_square = arr[left] ** 2
right_square = arr[right] ** 2
if left_square > right_square:
result[index] = left_square
left += 1
else:
result[index] = right_square
right -= 1
index -= 1
return result
# Примеры использования
print(sort_squared_array([-4, -1, 0, 3, 10])) # [0, 1, 9, 16, 100]
Этот алгоритм работает следующим образом:
1. Создаем массив result
той же длины, что и входной массив, для хранения результата.
2. Используем два указателя: left
(начало массива) и right
(конец массива).
3. Начинаем заполнять result
с конца, сравнивая квадраты чисел с левого и правого концов входного массива.
4. Больший квадрат помещаем в текущую позицию result
и сдвигаем соответствующий указатель.
5. Продолжаем процесс, пока не обработаем все элементы.
Временная сложность этого алгоритма - O(n). По памяти также O(n) для хранения результирующего массива.
Этот подход эффективен, потому что он использует тот факт, что входной массив уже отсортирован. Мы не выполняем повторную сортировку, а просто сравниваем квадраты элементов с обоих концов массива, что позволяет нам построить отсортированный массив квадратов за один проход.
Другие решения ребят в комментариях тоже рабочие, но у них есть свои "нюансы"
Какие моменты/вопросы по собесам вам были бы интересны сейчас — пишите в комментах 👇Your current plan allows analytics for only 5 channels. To get more, please choose a different plan.