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

最长递增子序列

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

题目
图片说明

class Solution {
public:
    /**
     * retrun the longest increasing subsequence
     * @param arr int整型vector the array
     * @return int整型vector
     */
     vector<int> LIS(vector<int>& arr) {
        // write code here
        // 第一步:利用贪心+二分求最长递增子序列长度
        vector<int> res;
        vector<int> maxLen;
        if (arr.size() < 1) return res;
        res.push_back(arr[0]);  // 注:emplace_back(val)作用同push_back,效率更高
        maxLen.push_back(1);
        for (int i = 1; i < arr.size(); ++i) 
        {
            if (arr[i] > res.back()) 
            {
                res.push_back(arr[i]);
                maxLen.push_back(res.size());
            } else 
            {
                // lower_bound(begin, end, val)包含在<algorithm>中
                // 它的作用是返回有序数组begin..end中第一个大于等于val的元素的迭代器
                int pos = lower_bound(res.begin(), res.end(), arr[i]) - res.begin();
                res[pos] = arr[i];
                maxLen.push_back(pos+1);
            }
        }
        // 第二步:填充最长递增子序列
        for (int i = arr.size()-1, j = res.size(); j > 0; --i) 
        {
            if (maxLen[i] == j) 
            {
                res[--j] = arr[i];
            }
        }
        return res;
    }
};
全部评论

相关推荐

09-01 13:50
已编辑
字节跳动_客户端开发
不演了是吧,来吧,那就互爆,聊天记录.........................................................................................................................................................................................................................................!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!在此,请允许小弟我先诚恳的道个歉,这个标题是引流的。听说字节今年要招5000人,小弟也不知道最终这个数字具体是真是假,小弟目前能做的就是附上内推码并将各位兄弟姐妹们的流程跟进到底,小弟的🐎如下:【内推码:883G76D】(听说用这个内推码投递的都进字节了?)投递链接:https://job.toutiao.com/s/nSVy8-JLz6g最后,无论大家目前学历如何,当前面试过没过,最终会不会选择字节,小弟内心衷心祝愿大家最后都能收获满意的offer。如果大家有关于字节的公司文化、面试招聘、团队氛围、公司食堂、福利待遇等任何问题,大家可以在评论区互相讨论呦,小弟也定当知无不言!引流:
迷茫的大四🐶:输入内推码就能进入字节了吗
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
08-20 19:41
那一天的Java_J...:简历完全流水账,学生思维很严重,还有很大的优化空间,可以多看看牛客的简历。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务