Advertisement
Guest User

Untitled

a guest
Apr 18th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. def print_LCS(b,X,i,j):
  2. if i==0 and j==0:
  3. return
  4. if b[i][j]=='diagonal':
  5. print_LCS(b,X,i-1,j-1)
  6. print (X[i])
  7. elif b[i][j]== 'up':
  8. print_LCS(b,X,i-1,j)
  9. else: print_LCS(b,X,i,j-1)
  10.  
  11. def LMIS_Length(X):
  12. n = len(X)
  13. cache=[[0 for _ in range(0,n+1)] for _ in range(0,n+1)]
  14. b=[[0 for _ in range(n)]for _ in range(n)]
  15. for i in range(1,n):
  16. for j in range(1,i):
  17. if X[i]>X[j]:
  18. cache[i][j]=cache[i-1][j-1]+1
  19. b[i][j]='diagonal'
  20. elif cache[i][j]>=cache[i-1][j]:
  21. cache[i][j]=cache[i-1][j]
  22. b[i][j]='up'
  23. else:
  24. cache[i][j]=cache[i][j-1]
  25. b[i][j]='left'
  26. return (cache, print_LCS(b,X,n-1,n-1))
  27.  
  28.  
  29. lst=[1,3,5,4,8,2,9,4,10]
  30. LMIS_Length(lst)
  31. #print_LCS(LMIS_Length(lst)[1],lst,)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement