mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
54 lines
2.4 KiB
HTML
54 lines
2.4 KiB
HTML
<p>给你一个二维整数数组 <code>ranges</code> ,其中 <code>ranges[i] = [start<sub>i</sub>, end<sub>i</sub>]</code> 表示 <code>start<sub>i</sub></code> 到 <code>end<sub>i</sub></code> 之间(包括二者)的所有整数都包含在第 <code>i</code> 个区间中。</p>
|
||
|
||
<p>你需要将 <code>ranges</code> 分成 <strong>两个</strong> 组(可以为空),满足:</p>
|
||
|
||
<ul>
|
||
<li>每个区间只属于一个组。</li>
|
||
<li>两个有 <strong>交集</strong> 的区间必须在 <strong>同一个 </strong>组内。</li>
|
||
</ul>
|
||
|
||
<p>如果两个区间有至少 <strong>一个</strong> 公共整数,那么这两个区间是 <b>有交集</b> 的。</p>
|
||
|
||
<ul>
|
||
<li>比方说,区间 <code>[1, 3]</code> 和 <code>[2, 5]</code> 有交集,因为 <code>2</code> 和 <code>3</code> 在两个区间中都被包含。</li>
|
||
</ul>
|
||
|
||
<p>请你返回将 <code>ranges</code> 划分成两个组的 <strong>总方案数</strong> 。由于答案可能很大,将它对 <code>10<sup>9</sup> + 7</code> <strong>取余</strong> 后返回。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre><b>输入:</b>ranges = [[6,10],[5,15]]
|
||
<b>输出:</b>2
|
||
<b>解释:</b>
|
||
两个区间有交集,所以它们必须在同一个组内。
|
||
所以有两种方案:
|
||
- 将两个区间都放在第 1 个组中。
|
||
- 将两个区间都放在第 2 个组中。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre><b>输入:</b>ranges = [[1,3],[10,20],[2,5],[4,8]]
|
||
<b>输出:</b>4
|
||
<b>解释:</b>
|
||
区间 [1,3] 和 [2,5] 有交集,所以它们必须在同一个组中。
|
||
同理,区间 [2,5] 和 [4,8] 也有交集,所以它们也必须在同一个组中。
|
||
所以总共有 4 种分组方案:
|
||
- 所有区间都在第 1 组。
|
||
- 所有区间都在第 2 组。
|
||
- 区间 [1,3] ,[2,5] 和 [4,8] 在第 1 个组中,[10,20] 在第 2 个组中。
|
||
- 区间 [1,3] ,[2,5] 和 [4,8] 在第 2 个组中,[10,20] 在第 1 个组中。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= ranges.length <= 10<sup>5</sup></code></li>
|
||
<li><code>ranges[i].length == 2</code></li>
|
||
<li><code>0 <= start<sub>i</sub> <= end<sub>i</sub> <= 10<sup>9</sup></code></li>
|
||
</ul>
|