Sunday, 5 May 2019

Finding Subarray from given sum in an Array.

Subarray with given sum :

Solution :


object Main {
  import scala.collection.mutable.ArrayBuffer
  import scala.util.control.Breaks._
  def main(args: Array[String]) {
    //Code
    var userArray:ArrayBuffer[Int]= ArrayBuffer()
    var subArray:ArrayBuffer[Int] = ArrayBuffer()
    println("Array size : ")
    val arrSize:Int = scala.io.StdIn.readInt()
    println("user array of size " + arrSize)
    var i:Int=0
    while(i<(arrSize))
    {
      var arrData:Int = scala.io.StdIn.readInt()
      userArray = userArray :+ arrData
      i+=1
    }
   // userArray.map(x=> println(x))
    println("-----------------------")
    println("Enter index sum to find in array : ")
    val sumToFind:Int = scala.io.StdIn.readInt()
    println("Sum which needs to find : "+ sumToFind.toString)
    var j=0
    var index=0
    var TempArray:ArrayBuffer[Int] = ArrayBuffer()
    if(sumToFind>userArray.sum)
    {
      println(" Sum entered exceed total array sum limit.")
    }
    else {
      breakable {
        TempArray = userArray
        println("Element of Array : ")
        userArray.map{m=>println(m)}
        for(l<-0 to userArray.length-1){
          while (sumToFind >= subArray.sum) {
            if (sumToFind == subArray.sum) {
              println("Element of SubArray : ")
              subArray.map{x=>println(x)}
              if((index+1) == (index + subArray.length))
              {
                println("Index value is : {" + (index + 1)+"}")
              }
              else {
                println("Index value is : {" + (index + 1) + " - " + (index + subArray.length) + "}")
              }
              break
            }
            else {
              if (TempArray.isEmpty) {
                println("Entered sum number is beyond this Array some limit.")
              }
              else {
                subArray = TempArray.take(j)
                /*//subArray = subArray :+ userArray(index)
                println("Temp-Array value : ")
                TempArray.map { z => println(z) }
                println("Sub-Array value : ")
                subArray.map { z => println(z) }*/
                if(TempArray.length == subArray.length && sumToFind > subArray.sum)
                {
                  println("No such sum exists in the array given by you !!!")
                  break
                }
              }
            }
            j = j + 1
          }
          while (sumToFind < subArray.sum) {
            TempArray -= subArray(0)
            subArray -= subArray(0)
            //subArray.map{x=> println(x)}
            j = j-1
            index = index + 1
          }
        }
      }
    }
  }
}

Output : 
Array size : 3
user array of size 3
2
6
5
-----------------------
Enter index sum to find in array : 11
Sum which needs to find : 11
Element of Array : 
2
6
5
Element of SubArray : 
6
5
Index value is : {2 - 3}

Finding Subarray from given sum in an Array.

Subarray with given sum : Solution : object Main {   import scala.collection.mutable.ArrayBuffer   import scala.util.control.Br...