- [Codility] Lession 4.2 PermCheck
- Codility 4.1 PermCheck
- [Codility] Lession 3.1 TapeEquil
- [Codility] Lession 5.2 CountDiv
- [Codility] Lession 2.1 CyclicRot
- [Codility] Lession 2.2 OddOccurr
- [Codility] Lession 3.3 PermMissi
- [Codility] Lession 3.2 FrogJmp
- [Codility] Lession 4.1 FrogRiver
- [Codility] Lession 4.3 MissingIn
Test URL can be found in extension link
Swift solution:
public func solution(inout A : [Int]) -> Int {
// The array count shall within certain range
if A.count > 100000 { return 0 }
// Set up a dictionary to check whether each element only appear once
var occurs = Dictionary<Int,Int>()
// The sum expectation of any elements non-repeatable is as following:
let expSum = A.count * (A.count + 1) / 2
var actSum = 0
for a in A {
// Each element shall within certain range
if a > 1000000000 { break }
// Get actual sum of the array
actSum += a
// If found any repeated elements, then this array is not valuable.
if occurs[a] == nil { occurs[a] = a }
else { return 0 }
}
return expSum == actSum ? 1: 0
}
网友评论