Как добавить в массив перед отрицательным числом такое же положительное

Подскажите, есть массив целых чисел, в нем есть отрицательные числа. Как перед отрицательными числами в массив добавить такие же положительные? Пример ниже

var arrayInt: [Int] = [10, -15, 20, -200]

//result

[10, 15, -15, 20, 200, -200]

Ответы (1 шт):

Автор решения: schmidt9

Можно решить данную задачу как минимум двумя способами

  • с использованием второго массива
  • с модификацией исходного массива
// variant 1

var arrayInt: [Int] = [10, -15, 20, -200]
var arrayIntResult = [Int]()

for item in arrayInt {
    if item < 0 {
        arrayIntResult.append(-item)
    }
    
    arrayIntResult.append(item)
}

arrayInt = arrayIntResult

print(arrayInt)

assert(arrayInt == [10, 15, -15, 20, 200, -200])

// variant 2

arrayInt = [10, -15, 20, -200]

var position = 0

for item in arrayInt {
    if item < 0 {
        arrayInt.insert(-item, at: position)
        position += 1
    }
    
    position += 1
}

print(arrayInt)

assert(arrayInt == [10, 15, -15, 20, 200, -200])
→ Ссылка