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的最长公共子序列
第二种方法:
按照高度排序,然后找体重的最长上升序列