mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-11 02:58:13 +08:00
51 lines
2.7 KiB
HTML
51 lines
2.7 KiB
HTML
|
<p>给你一个正整数 <code>n</code> ,表示一个 <strong>无向</strong> 图中的节点数目,节点编号从 <code>1</code> 到 <code>n</code> 。</p>
|
|||
|
|
|||
|
<p>同时给你一个二维整数数组 <code>edges</code> ,其中 <code>edges[i] = [a<sub>i, </sub>b<sub>i</sub>]</code> 表示节点 <code>a<sub>i</sub></code> 和 <code>b<sub>i</sub></code><sub> </sub>之间有一条 <strong>双向</strong> 边。注意给定的图可能是不连通的。</p>
|
|||
|
|
|||
|
<p>请你将图划分为 <code>m</code> 个组(编号从 <strong>1</strong> 开始),满足以下要求:</p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li>图中每个节点都只属于一个组。</li>
|
|||
|
<li>图中每条边连接的两个点 <code>[a<sub>i, </sub>b<sub>i</sub>]</code> ,如果 <code>a<sub>i</sub></code> 属于编号为 <code>x</code> 的组,<code>b<sub>i</sub></code> 属于编号为 <code>y</code> 的组,那么 <code>|y - x| = 1</code> 。</li>
|
|||
|
</ul>
|
|||
|
|
|||
|
<p>请你返回最多可以将节点分为多少个组(也就是最大的<em> </em><code>m</code> )。如果没办法在给定条件下分组,请你返回 <code>-1</code> 。</p>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><strong>示例 1:</strong></p>
|
|||
|
|
|||
|
<p><img alt="" src="https://assets.leetcode.com/uploads/2022/10/13/example1.png" style="width: 352px; height: 201px;"></p>
|
|||
|
|
|||
|
<pre><b>输入:</b>n = 6, edges = [[1,2],[1,4],[1,5],[2,6],[2,3],[4,6]]
|
|||
|
<b>输出:</b>4
|
|||
|
<b>解释:</b>如上图所示,
|
|||
|
- 节点 5 在第一个组。
|
|||
|
- 节点 1 在第二个组。
|
|||
|
- 节点 2 和节点 4 在第三个组。
|
|||
|
- 节点 3 和节点 6 在第四个组。
|
|||
|
所有边都满足题目要求。
|
|||
|
如果我们创建第五个组,将第三个组或者第四个组中任何一个节点放到第五个组,至少有一条边连接的两个节点所属的组编号不符合题目要求。
|
|||
|
</pre>
|
|||
|
|
|||
|
<p><strong>示例 2:</strong></p>
|
|||
|
|
|||
|
<pre><b>输入:</b>n = 3, edges = [[1,2],[2,3],[3,1]]
|
|||
|
<b>输出:</b>-1
|
|||
|
<b>解释:</b>如果我们将节点 1 放入第一个组,节点 2 放入第二个组,节点 3 放入第三个组,前两条边满足题目要求,但第三条边不满足题目要求。
|
|||
|
没有任何符合题目要求的分组方式。
|
|||
|
</pre>
|
|||
|
|
|||
|
<p> </p>
|
|||
|
|
|||
|
<p><strong>提示:</strong></p>
|
|||
|
|
|||
|
<ul>
|
|||
|
<li><code>1 <= n <= 500</code></li>
|
|||
|
<li><code>1 <= edges.length <= 10<sup>4</sup></code></li>
|
|||
|
<li><code>edges[i].length == 2</code></li>
|
|||
|
<li><code>1 <= a<sub>i</sub>, b<sub>i</sub> <= n</code></li>
|
|||
|
<li><code>a<sub>i</sub> != b<sub>i</sub></code></li>
|
|||
|
<li>两个点之间至多只有一条边。</li>
|
|||
|
</ul>
|