mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-12 02:41:42 +08:00
64 lines
3.7 KiB
HTML
64 lines
3.7 KiB
HTML
<p>给你一个整数 <code>n</code>,表示图中的节点数量,这些节点按从 <code>0</code> 到 <code>n - 1</code> 编号。</p>
|
||
|
||
<p>同时给你一个长度为 <code>n</code> 的整数数组 <code>nums</code>,该数组按 <strong>非递减 </strong>顺序排序,以及一个整数 <code>maxDiff</code>。</p>
|
||
|
||
<p>如果满足 <code>|nums[i] - nums[j]| <= maxDiff</code>(即 <code>nums[i]</code> 和 <code>nums[j]</code> 的 <strong>绝对差 </strong>至多为 <code>maxDiff</code>),则节点 <code>i</code> 和节点 <code>j</code> 之间存在一条 <strong>无向边 </strong>。</p>
|
||
|
||
<p>此外,给你一个二维整数数组 <code>queries</code>。对于每个 <code>queries[i] = [u<sub>i</sub>, v<sub>i</sub>]</code>,需要判断节点 <code>u<sub>i</sub></code> 和 <code>v<sub>i</sub></code> 之间是否存在路径。</p>
|
||
|
||
<p>返回一个布尔数组 <code>answer</code>,其中 <code>answer[i]</code> 等于 <code>true</code> 表示在第 <code>i</code> 个查询中节点 <code>u<sub>i</sub></code> 和 <code>v<sub>i</sub></code> 之间存在路径,否则为 <code>false</code>。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例 1:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">n = 2, nums = [1,3], maxDiff = 1, queries = [[0,0],[0,1]]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">[true,false]</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<ul>
|
||
<li>查询 <code>[0,0]</code>:节点 0 有一条到自己的显然路径。</li>
|
||
<li>查询 <code>[0,1]</code>:节点 0 和节点 1 之间没有边,因为 <code>|nums[0] - nums[1]| = |1 - 3| = 2</code>,大于 <code>maxDiff</code>。</li>
|
||
<li>因此,在处理完所有查询后,最终答案为 <code>[true, false]</code>。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p><strong class="example">示例 2:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong> <span class="example-io">n = 4, nums = [2,5,6,8], maxDiff = 2, queries = [[0,1],[0,2],[1,3],[2,3]]</span></p>
|
||
|
||
<p><strong>输出:</strong> <span class="example-io">[false,false,true,true]</span></p>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<p>生成的图如下:</p>
|
||
|
||
<p><img alt="" src="https://pic.leetcode.cn/1745660506-eNVQtC-screenshot-2025-03-26-at-122249.png" style="width: 300px; height: 170px;" /></p>
|
||
|
||
<ul>
|
||
<li>查询 <code>[0,1]</code>:节点 0 和节点 1 之间没有边,因为 <code>|nums[0] - nums[1]| = |2 - 5| = 3</code>,大于 <code>maxDiff</code>。</li>
|
||
<li>查询 <code>[0,2]</code>:节点 0 和节点 2 之间没有边,因为 <code>|nums[0] - nums[2]| = |2 - 6| = 4</code>,大于 <code>maxDiff</code>。</li>
|
||
<li>查询 <code>[1,3]</code>:节点 1 和节点 3 之间存在路径通过节点 2,因为 <code>|nums[1] - nums[2]| = |5 - 6| = 1</code> 和 <code>|nums[2] - nums[3]| = |6 - 8| = 2</code>,都小于等于 <code>maxDiff</code>。</li>
|
||
<li>查询 <code>[2,3]</code>:节点 2 和节点 3 之间有一条边,因为 <code>|nums[2] - nums[3]| = |6 - 8| = 2</code>,等于 <code>maxDiff</code>。</li>
|
||
<li>因此,在处理完所有查询后,最终答案为 <code>[false, false, true, true]</code>。</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</strong></p>
|
||
|
||
<ul>
|
||
<li><code>1 <= n == nums.length <= 10<sup>5</sup></code></li>
|
||
<li><code>0 <= nums[i] <= 10<sup>5</sup></code></li>
|
||
<li><code>nums</code> 按 <strong>非递减 </strong>顺序排序。</li>
|
||
<li><code>0 <= maxDiff <= 10<sup>5</sup></code></li>
|
||
<li><code>1 <= queries.length <= 10<sup>5</sup></code></li>
|
||
<li><code>queries[i] == [u<sub>i</sub>, v<sub>i</sub>]</code></li>
|
||
<li><code>0 <= u<sub>i</sub>, v<sub>i</sub> < n</code></li>
|
||
</ul>
|