14 lines
445 B
Nim
14 lines
445 B
Nim
proc longestIncreasingSubsequence[T](d: seq[T]): seq[T] =
|
|
var l: seq[seq[T]]
|
|
for i in 0 .. d.high:
|
|
var x: seq[T]
|
|
for j in 0 ..< i:
|
|
if l[j][l[j].high] < d[i] and l[j].len > x.len:
|
|
x = l[j]
|
|
l.add x & @[d[i]]
|
|
for x in l:
|
|
if x.len > result.len:
|
|
result = x
|
|
|
|
for d in [@[3,2,6,4,5,1], @[0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]]:
|
|
echo "A L.I.S. of ", d, " is ", longestIncreasingSubsequence(d)
|