美文网首页计算机
Leetcode - Data Stream as Disjoi

Leetcode - Data Stream as Disjoi

作者: Richardo92 | 来源:发表于2016-09-30 08:50 被阅读100次

    My code:

    /**
     * Definition for an interval.
     * public class Interval {
     *     int start;
     *     int end;
     *     Interval() { start = 0; end = 0; }
     *     Interval(int s, int e) { start = s; end = e; }
     * }
     */
    public class SummaryRanges {
        TreeMap<Integer, Interval> map = new TreeMap<Integer, Interval>();
        /** Initialize your data structure here. */
        public SummaryRanges() {
            
        }
        
        public void addNum(int val) {
            if (map.containsKey(val)) {
                return;
            }
            Integer l = map.lowerKey(val);
            Integer h = map.higherKey(val);
            if (l != null && h != null && map.get(l).end + 1 == val && val + 1 == h) {
                map.put(l, new Interval(l, map.get(h).end));
                map.remove(h);
            }
            else if (l != null && map.get(l).end + 1 >= val) {
                map.put(l, new Interval(l, Math.max(map.get(l).end, val)));
            }
            else if (h != null && val >= h - 1) {
                map.put(val, new Interval(val, map.get(h).end));
                map.remove(h);
            }
            else {
                map.put(val,new Interval(val, val));
            }
        }
        
        public List<Interval> getIntervals() {
            return new ArrayList<Interval>(map.values());
        }
    }
    
    /**
     * Your SummaryRanges object will be instantiated and called as such:
     * SummaryRanges obj = new SummaryRanges();
     * obj.addNum(val);
     * List<Interval> param_2 = obj.getIntervals();
     */
    

    reference:
    https://discuss.leetcode.com/topic/46887/java-solution-using-treemap-real-o-logn-per-adding

    感觉这道题目没什么意思。
    主要就是熟悉下 TreeMap
    他的特点就是 lowerKey(), higherKey()

    Anyway, Good luck, Richardo! -- 09/29/2016

    相关文章

      网友评论

        本文标题:Leetcode - Data Stream as Disjoi

        本文链接:https://www.haomeiwen.com/subject/olmlyttx.html