基本思路
问题要的是一个序列,序列中每个元素中有两个数,前一个元素的第一个和第二个数都比后一个元素的两者大。
我们可以这样,先把元素按第一个数降序排列,然后如果有相同的数,那么按第二个数升序排列,然后按第二个数来求最大下降子序列的长度。
为什么第一个数相同时,按第二个数升序排列?
这是因为如果按第二个数降序排列,而求的是最大下降子序列的长度,那么有可能会产生有两个元素第一个数相同,但是都被选中的结果。而升序排列就避免了这种情况。
代码
1 | class Solution { |
问题要的是一个序列,序列中每个元素中有两个数,前一个元素的第一个和第二个数都比后一个元素的两者大。
我们可以这样,先把元素按第一个数降序排列,然后如果有相同的数,那么按第二个数升序排列,然后按第二个数来求最大下降子序列的长度。
这是因为如果按第二个数降序排列,而求的是最大下降子序列的长度,那么有可能会产生有两个元素第一个数相同,但是都被选中的结果。而升序排列就避免了这种情况。
1 | class Solution { |