715. Range Module

Sep 14, 2021

Leetcodearrow-up-right

Basic Idea

基本思路有两个,一个是使用SegmentTree,还有一个是使用TreeMap。

TreeMap Solution

利用TreeMap排序的性质,维持merge interval的操作,在其中存放互不重叠的interval。利用 TreeMap.subMap(left, true, right, false) 来删掉中间overlap的小区间。

SegmentTree Solution

对于SegmentTree我之前的印象一直是需要和总数据量一样大的空间和时间,但事实上并不需要。在query的时候如果当前的node没有child,则说明child的性质和当前的node相同,可以直接返回。只有在更新的时候需要按需求populate 左右node。

Last updated