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 Scala

1 Answer

0 votes
object ShortestRunProgram {

  def shortest_identical_consecutive_subarray(arr: Array[Int]): Array[Int] = {
    if (arr.isEmpty) return Array.empty[Int]

    var bestStart = 0
    var bestLen   = arr.length

    var currentStart = 0
    var currentLen   = 1

    for (i <- 1 until arr.length) {
      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
    }

    arr.slice(bestStart, bestStart + bestLen)
  }

  // ------------------------------------------------------------
  // MAIN PROGRAM
  // ------------------------------------------------------------
  def main(args: Array[String]): Unit = {
    val arr = Array(
      3,3,3,
      7,7,7,7,7,
      2,2,
      5,5,5,5,
      9,9,9,9,9,9
    )

    val resultArr = shortest_identical_consecutive_subarray(arr)

    print("Array result: ")
    resultArr.foreach(x => print(s"$x "))
  }
}

  
  
  
/*
run:
  
Array result: 2 2 
  
*/

 

 



answered 9 hours ago by avibootz

Related questions

...