马戏团人塔问题

来源:互联网 发布:高斯键盘知乎 编辑:程序博客网 时间:2024/04/30 09:03

http://www.1point3acres.com/bbs/thread-13238-1-1.html

A circus is designing a tower routine consisting of people standing atop one another’s
shoulders. For practical and aesthetic reasons, each person must be both shorter and lighter than the person below him or her. Given the heights and weights of each person in the circus, write a method to compute the largest possible number of people
in such a tower.
EXAMPLE:
Input (ht, wt): (65, 100) (70, 150) (56, 90) (75, 190) (60, 95) (68, 110)
Output: The longest tower is length 6 and includes from top to bottom: (56, 90) (60,95) (65,100) (68,110) (70,150) (75,190)


有两种方法:

1. 按照高度排序,为A

2. 按照体重排序,为B

3. 求A和B的最长公共子序列


第二种方法:

按照高度排序,然后找体重的最长上升序列

原创粉丝点击