Skip to content

Commit 5aef703

Browse files
authored
implement guarded array.first
1 parent 87bde22 commit 5aef703

File tree

1 file changed

+3
-8
lines changed

1 file changed

+3
-8
lines changed

Select Minimum Maximum/MinimumMaximumPairs.swift

+3-8
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,11 @@
33
*/
44

55
func minimumMaximum<T: Comparable>(_ array: [T]) -> (minimum: T, maximum: T)? {
6-
guard !array.isEmpty else {
7-
return nil
8-
}
9-
10-
var minimum = array.first!
11-
var maximum = array.first!
6+
guard var minimum = array.first else { return nil }
7+
var maximum = minimum
128

139
// if 'array' has an odd number of items, let 'minimum' or 'maximum' deal with the leftover
14-
let hasOddNumberOfItems = array.count % 2 != 0
15-
let start = hasOddNumberOfItems ? 1 : 0
10+
let start = array.count % 2 // 1 if odd, skipping the first element
1611
for i in stride(from: start, to: array.count, by: 2) {
1712
let pair = (array[i], array[i+1])
1813

0 commit comments

Comments
 (0)