一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1091|回复: 1
收起左侧

[二分/排序/搜索] LC: Data Stream as Disjoint Intervals

[复制链接] |试试Instant~ |关注本帖
dukeforever 发表于 2016-6-6 12:09:02 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
用set写了一个版本,TLE了,有同学遇到类似的问题吗?问下~

class SummaryRanges {
public:
    /** Initialize your data structure here. */
    SummaryRanges() {
        
    }
   
    void addNum(int val) {
        Interval t(val, val);
        auto low = dict.lower_bound(t);
        if (low == dict.end()) {
            dict.insert(Interval(val, val));
        } else {
            int start, end;
            auto p = prev(low);
            if (val+1 == low->start && p != dict.end() && p->end+1 == val) {
                t.end = low->end, t.start = p->start;
                dict.erase(low);
                dict.erase(p);
                dict.insert(t);
            } else if (val+1 == low->start) {
                t.end = low->end, t.start = val;
                dict.erase(low);
                dict.insert(t);
            } else if (p != dict.end() && p->end+1 == val) {
                t.start = p->start, t.end = val;
                dict.erase(p);
                dict.insert(t);
            } else {
                dict.insert(t);
            }
        }
    }
   
    vector<Interval> getIntervals() {
        vector<Interval> res;
        copy(dict.begin(), dict.end(), back_inserter(res));
        return res;
    }
    set<Interval, Interval_compare> dict;
};
lava555 发表于 2016-6-16 11:48:19 | 显示全部楼层
本帖最后由 lava555 于 2016-6-15 19:52 编辑

同用set遇到问题,关注中。。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-1-19 10:36

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表