Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
28
Task/Equilibrium-index/Swift/equilibrium-index.swift
Normal file
28
Task/Equilibrium-index/Swift/equilibrium-index.swift
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
extension Collection where Element: Numeric {
|
||||
func equilibriumIndexes() -> [Index] {
|
||||
guard !isEmpty else {
|
||||
return []
|
||||
}
|
||||
|
||||
let sumAll = reduce(0, +)
|
||||
var ret = [Index]()
|
||||
var sumLeft: Element = 0
|
||||
var sumRight: Element
|
||||
|
||||
for i in indices {
|
||||
sumRight = sumAll - sumLeft - self[i]
|
||||
|
||||
if sumLeft == sumRight {
|
||||
ret.append(i)
|
||||
}
|
||||
|
||||
sumLeft += self[i]
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
}
|
||||
|
||||
let arr = [-7, 1, 5, 2, -4, 3, 0]
|
||||
|
||||
print("Equilibrium indexes of \(arr): \(arr.equilibriumIndexes())")
|
||||
Loading…
Add table
Add a link
Reference in a new issue