题解 | #最长递增子序列#

最长递增子序列

http://www.nowcoder.com/practice/9cf027bf54714ad889d4f30ff0ae5481

python使用bisect和patient sort, 借助pre记录每个位置的前驱

import bisect
class Solution:
    def LIS(self , arr ):
        stack = [0]
        pre = [-1] * len(arr)

        class Range:
            def __getitem__(self, i):
                return arr[stack[i]]
            def __len__(self):
                return len(stack)

        for i in range(1, len(arr)):
            idx = bisect.bisect_left(Range(), arr[i])
            if idx < len(stack):
                stack[idx] = i
                pre[i] = stack[idx - 1] if idx - 1 >=0 else -1
            else:
                pre[i] = stack[-1]        
                stack.append(i)

        cur = stack[-1]
        res = []
        while cur != -1:
            res.append(arr[cur])
            cur = pre[cur]
        return res[::-1]
全部评论

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务