Longest increasing subsequence: Difference between revisions
m
→Patience sorting: s/@d/@deck/ # being a bit more explicit
(+ third D version) |
m (→Patience sorting: s/@d/@deck/ # being a bit more explicit) |
||
Line 357:
===Patience sorting===
<lang Perl 6>sub patience(@
my @S = [@
for @
if defined my $i = first { @S[$_][*-1].key > $card }, ^@S {
@S[$i].push: $card => @S[$i-1][*-1] // Mu
Line 368:
return @S
}
sub lis(@S) {
reverse map *.key, (
)
}
say lis patience(<3 2 6 4 5 1>);
say lis patience(<0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15>);</lang>
{{out}}
<pre>2 4 5
|