Дан слайс целых чисел, отсортированный по неубыванию. Верните новый слайс из
квадратов этих чисел, тоже отсортированный по неубыванию. Пакет sort/slices
для сортировки не использовать — нужно решение за минимальное время.
// SortedSquares возвращает отсортированные квадраты элементов nums.
func SortedSquares(nums []int) []int
Примеры
[-4, -2, 1, 3] → [1, 4, 9, 16]
[-7, -3, 2, 3, 11] → [4, 9, 9, 49, 121]
[] → []
Ограничения
0 ≤ len(nums) ≤ 10⁶, |nums[i]| ≤ 10⁹ (квадрат помещается в int64).
- Входной слайс не изменять, длина результата равна длине входа.
- Ожидается O(n) по времени.
Разбор и эталонное решение — после своей попытки: на собеседовании подсказок не будет.
Сначала попробуй сам — подсказки не дают готовый ответ.