Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,870 questions

51,793 answers

573 users

How to find the shortest identical consecutive subarray in an array with Swift

1 Answer

0 votes
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 

*/

 



answered 9 hours ago by avibootz

Related questions

...