https://leetcode.com/problems/sort-array-by-parity-ii | Easy |
---|
Дан массив nums
длины n
, где n
чётное. Половина элементов чётные, половина нечётные. Нужно вернуть массив, где на чётных индексах стоят чётные числа, а на нечётных индексах — нечётные.
Input:
nums = [4, 2, 5, 7]Output:
[4, 5, 2, 7]Explanation:
[4, 7, 2, 5] тоже допустимо.
Input:
nums = [2, 3]Output:
[2, 3]
fun sortArrayByParityII(nums: IntArray): IntArray {
val result = IntArray(nums.size) // Массив для результата
var evenIndex = 0 // Указатель для четных индексов
var oddIndex = 1 // Указатель для нечетных индексов
for (num in nums) {
if (num % 2 == 0) {
// Если число четное, добавляем его на четный индекс
result[evenIndex] = num
evenIndex += 2
} else {
// Если число нечетное, добавляем его на нечетный индекс
result[oddIndex] = num
oddIndex += 2
}
}
return result // Возвращаем отсортированный массив
}
O(N), где N — длина массива.
O(N) для массива result
.