习题 5:最长上升子序列(LIS)
题目:给定数组
[-3,-2,1,6,2,-7,5,8,-9,-8,-2,7,6,11,-2,3,-4],求最长上升子序列的长度。
object LongAS {
def main(args: Array[String]): Unit = {
var a = List(-3, -2, 1, 6, 2, -7, 5, 8, -9, -8, -2, 7, 6, 11, -2, 3, -4)
val n = a.length
var f = Array.ofDim[Int](n)
var ans = 0
for (i <- 0 until n) {
f(i) = 1
for (j <- 0 until i) {
if (a(i) > a(j)) {
f(i) = math.max(f(i), f(j) + 1)
}
}
ans = math.max(ans, f(i))
}
println(ans)
}
}