Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
|
|
@ -0,0 +1,21 @@
|
|||
package require Tcl 8.6
|
||||
|
||||
proc longestIncreasingSubsequence {sequence} {
|
||||
# Get the increasing subsequences (and their lengths)
|
||||
set subseq [list 1 [lindex $sequence 0]]
|
||||
foreach value $sequence {
|
||||
set max {}
|
||||
foreach {len item} $subseq {
|
||||
if {[lindex $item end] < $value} {
|
||||
if {[llength [lappend item $value]] > [llength $max]} {
|
||||
set max $item
|
||||
}
|
||||
} elseif {![llength $max]} {
|
||||
set max [list $value]
|
||||
}
|
||||
}
|
||||
lappend subseq [llength $max] $max
|
||||
}
|
||||
# Pick the longest subsequence; -stride requires Tcl 8.6
|
||||
return [lindex [lsort -stride 2 -index 0 $subseq] end]
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
puts [longestIncreasingSubsequence {3 2 6 4 5 1}]
|
||||
puts [longestIncreasingSubsequence {0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15}]
|
||||
Loading…
Add table
Add a link
Reference in a new issue