题解 | #信封嵌套问题#

信封嵌套问题

https://www.nowcoder.com/practice/9bf77b5b018d4d24951c9a7edb40408f

时间复杂度O(NlogN), 空间复杂度O(N)

[C++ 代码]

#include <algorithm>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param letters intvector<vector<>> 
     * @return int
     */
    int maxLetters(vector<vector<int> >& letters) {
        int n = letters.size();
        // 按长度从小到大排序,相等时按宽度从大到小排序
        sort(letters.begin(), letters.end(), [&](const auto& a, const auto& b){
            return a[0] < b[0] || (a[0]==b[0] && a[1] > b[1]);
        });
        // 求最长严格递增子序列的思路
        vector<int> temp;
        temp.emplace_back(letters[0][1]);
        for(int i=1; i<n; ++i){
            if(letters[i][1] > temp.back()) temp.emplace_back(letters[i][1]);
            else{
                auto it = lower_bound(temp.begin(), temp.end(), letters[i][1]);
                *it = letters[i][1];
            }
        }
        return temp.size();
    }
};

全部评论

相关推荐

11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
头像
昨天 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务