zoukankan      html  css  js  c++  java
  • LeetCode刷题_56_合并区间

    思路:也没啥好说的了,就是模拟然后注意输入可能为空的判断。运用运算符重载先sort一波。应该有更简单的解法,待我研究出来再更新。

    class Solution {
    public:
        static bool cmp(pair<int, int> P1, pair<int, int> P2) {
            if(P1.first != P2.first) {
                return P1.first < P2.first;
            }
            return P1.second < P2.second;
        }
        vector<vector<int>> merge(vector<vector<int>>& intervals) {
            if(intervals.size() == 0) {
                return intervals;
            }
            vector<pair<int, int>> v;
            for(int i = 0; i < intervals.size(); ++i) {
                v.push_back(pair<int, int>(intervals[i][0], intervals[i][1]));
            }    
            sort(v.begin(), v.end(), cmp);
            pair<int, int> temp = v[0];
            vector<pair<int, int>> ans;
            for(int i = 1; i < v.size(); ++i) {
                if(temp.second >= v[i].first) {
                    if(temp.second <= v[i].second)
                        temp = pair<int, int>(temp.first, v[i].second);
                }
                else {
                    ans.push_back(temp);
                    temp = v[i];
                }
            }
            ans.push_back(temp);
            vector<vector<int>> f;
            for(int i = 0; i < ans.size(); ++i) {
                vector<int>sb;
                sb.push_back(ans[i].first); sb.push_back(ans[i].second);
                f.push_back(sb);
            }
            return f;
        }
    private:
    };
    
    作者:LightAc
    出处:https://www.cnblogs.com/lightac/
    联系:
    Email: dzz@stu.ouc.edu.cn
    QQ: 1171613053
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    Openlayer 3 的画图测量面积
    Openlayer 3 的画线测量长度
    屏幕尺寸
    px和em,rem的区别
    水平和垂直居中
    Flex布局
    继承的几种方法及优缺点
    call ,apply 和 bind的用法与区别
    mybatis springmvc velocity的demo
    正则同时包含两个关键字
  • 原文地址:https://www.cnblogs.com/lightac/p/12715912.html
Copyright © 2011-2022 走看看