Jump to content

Longest increasing subsequence: Difference between revisions

Add Déjà Vu example
(→‎Python: Patience sorting method: swap function _unwind for method __iter__ over values.)
(Add Déjà Vu example)
Line 10:
# [http://www.youtube.com/watch?v=4fQJGoeW5VE Dynamic Programming #1: Longest Increasing Subsequence] on Youtube
# An efficient solution can be based on [[wp:Patience sorting|Patience sorting]].
 
=={{header|Déjà Vu}}==
{{trans|Python}}
<lang dejavu>
in-pair:
if = :nil dup:
false drop
else:
@in-pair &> swap &< dup
 
get-last lst:
get-from lst -- len lst
 
lis-sub pile i di:
for j range 0 -- len pile:
local :pj get-from pile j
if > &< get-last pj di:
push-to pj & di if j get-last get-from pile -- j :nil
return
push-to pile [ & di get-last get-last pile ]
 
lis d:
local :pile [ [ & get-from d 0 :nil ] ]
for i range 1 -- len d:
lis-sub pile i get-from d i
[ for in-pair get-last get-last pile ]
 
. lis [ 3 2 6 4 5 1 ]
. lis [ 0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15 ]
</lang>
 
{{out}}
<pre>[ 2 4 5 ]
[ 0 2 6 9 11 15 ]</pre>
 
 
=={{header|Java}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.