Доброе утро всем,
Я пытаюсь сделать небольшой алгоритм с Swft 4.2 и иметь минимально возможную стоимость "O"
На мой вопрос дан код, который я передам вам. Если у вас есть какой-либо способ улучшить стоимость вычислений.
Алгоритм, который вы должны сделать:
- Массив [Int] передается в функцию "arrayMultiplication".
Предположим, что это [2,3,4,5]
- Нам нужно умножить все элементы для
каждая позиция, кроме той же. В этом случае это будет: [3x4x5,
2x4x5, 2x3x5, 2x3x4] = [60, 40, 30, 24]
Мой код следующий:
import UIKit
class ViewController: UIViewController {
var arrayInts: [Int] = [2,3,4,5]
var arrayMultiplication: [Int] = []
override func viewDidLoad() {
super.viewDidLoad()
arrayMultiplication = arrayMultiplication(array: &arrayInts)
print("\(arrayMultiplication)")
}
func arrayMultiplication(array: inout [Int])-> [Int]{
var arrayMult:[Int] = []
for i in 0...array.count - 1 {
let remove = array.remove(at: i)
let mult = array.reduce (1, {$0 * $1})
arrayMult.append(mult)
array.insert(remove, at: i)
}
return arrayMult
}
}
Идея состоит в том, чтобы понизить "O" этого алгоритма.
Спасибо
Улучшение стоимости "O" в алгоритме