Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private def Seqs(valmis: Array[Int], jämät: Array[Int]): List[Array[Int]] =
- if (jämät.length == 0)
- List(valmis)
- else if (jämät.head > valmis.last)
- Seqs(valmis :+ jämät.head, jämät.tail) ++ Seqs(valmis, jämät.tail)
- else
- Seqs(valmis, jämät.tail)
- def longestIncreasingSubsequence(s: Seq[Int]): Seq[Int] = {
- require(s.length > 0)
- if (s.length < 2) s
- else {
- def Seqs(valmis: Array[Int], jämät: Array[Int]): List[Array[Int]] =
- if (jämät.length == 0) List(valmis)
- else if (jämät.head > valmis.last)
- Seqs(valmis :+ jämät.head, jämät.tail) ++ Seqs(valmis, jämät.tail)
- else Seqs(valmis, jämät.tail)
- var Seqs1: List[Array[Int]] = List()
- for ( i <- 0 until s.length) {
- val seq2 = s.drop(i).toArray
- Seqs1 = Seqs1 ::: Seqs(Array(seq2.head), seq2.tail)
- }
- var pituus = 0
- Seqs1.foreach(s => if (s.length > pituus) pituus = s.length)
- Seqs1.filter(s => s.length == pituus).head
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement