import Foundation
func shortest_identical_consecutive_subarray(_ arr: [Int]) -> [Int] {
if arr.isEmpty { return [] }
var bestStart = 0
var bestLen = arr.count
var currentStart = 0
var currentLen = 1
for i in 1..<arr.count {
if arr[i] == arr[i - 1] {
currentLen += 1
} else {
if currentLen < bestLen {
bestLen = currentLen
bestStart = currentStart
}
currentStart = i
currentLen = 1
}
}
if currentLen < bestLen {
bestLen = currentLen
bestStart = currentStart
}
return Array(arr[bestStart ..< bestStart + bestLen])
}
// ------------------------------------------------------------
// MAIN PROGRAM
// ------------------------------------------------------------
let arr = [
3,3,3,
7,7,7,7,7,
2,2,
5,5,5,5,
9,9,9,9,9,9
]
let resultArr = shortest_identical_consecutive_subarray(arr)
print("Array result:", terminator: " ")
for x in resultArr {
print(x, terminator: " ")
}
/*
run:
Array result: 2 2
*/