Нужна помощь с кодом на swift

Если переводить на русский язык - дан массив, в нем каждому элементу меньше или равному максимального надо дать +3 от заранее заданной суммы. Остаток от суммы пойдет в минимальный элемент в итоге. Найти сумму элементов ниже максимального

import Foundation

func getResult(cash: [Int], s: Int) -> Int {
 var max = 0, min = 0
 var c = 0, c1 = 0
 var cash1 = cash
 while s > 2 {
 for i in 0..<cash1.count {
 if cash1[i] >= cash1[+1] {
                        max = cash1[i]
 }
 }
 for i in 0..<cash1.count {
 if cash1[i] < max {
                        cash1[i] = cash1[i] + 3
 }
 }
 for i in 0..<cash1.count {
 if cash1[i] < cash1[i+1] {
                    min = i
 }
 }
            cash1[min] += s
 for i in 0..<cash1.count {
 if cash1[i] >= cash1[i+1] {
                        max = cash1[i]
 }
 }
 for i in 0..<cash1.count {
 if cash1[i] <= max {
                            c += 1
 }
 }
 for i in 0..<cash1.count {
 if cash1[i] > 0 {
                            c1 += 1
 }
 }
 }
 return c1-c
}

В свифте только начинаю разбираться, задача оказалась не по силам Выдает ошибки самых разных сортов, need help

(Версия swift 5.4)


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

Автор решения: Oleg Soloviev

Вы проверяете <cash1.count, но затем увеличиваете значение индекса в cash1[i+1], поэтому выходите за рамки массива. Плюс у вас пропущено i в cash1[+1]

По самой задаче - вам нужно сохранять значение массива в переменную и сравнение выполнять с ней, а не со следующим элементом массива.

→ Ссылка