1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-27 10:40:26 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/按距离统计房屋对数目 II [count-the-number-of-houses-at-a-certain-distance-ii].html

59 lines
3.4 KiB
HTML
Raw Normal View History

2024-01-26 11:46:13 +08:00
<p>给你三个<strong> 正整数 </strong><code>n</code><code>x</code><code>y</code></p>
<p>在城市中,存在编号从 <code>1</code><code>n</code> 的房屋,由 <code>n</code> 条街道相连。对所有 <code>1 &lt;= i &lt; n</code> ,都存在一条街道连接编号为 <code>i</code> 的房屋与编号为 <code>i + 1</code> 的房屋。另存在一条街道连接编号为 <code>x</code> 的房屋与编号为 <code>y</code> 的房屋。</p>
<p>对于每个 <code>k</code><code>1 &lt;= k &lt;= n</code>),你需要找出所有满足要求的 <strong>房屋对 </strong><code>[house<sub>1</sub>, house<sub>2</sub>]</code> ,即从 <code>house<sub>1</sub></code><code>house<sub>2</sub></code> 需要经过的<strong> 最少</strong> 街道数为 <code>k</code></p>
<p>返回一个下标从 <strong>1</strong> 开始且长度为 <code>n</code> 的数组 <code>result</code> ,其中 <code>result[k]</code> 表示所有满足要求的房屋对的数量,即从一个房屋到另一个房屋需要经过的<strong> 最少 </strong>街道数为 <code>k</code></p>
<p><strong>注意</strong><code>x</code><code>y</code> 可以 <strong>相等 </strong></p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<img alt="" src="https://assets.leetcode.com/uploads/2023/12/20/example2.png" style="width: 474px; height: 197px;" />
<pre>
<strong>输入:</strong>n = 3, x = 1, y = 3
<strong>输出:</strong>[6,0,0]
<strong>解释:</strong>让我们检视每个房屋对
- 对于房屋对 (1, 2),可以直接从房屋 1 到房屋 2。
- 对于房屋对 (2, 1),可以直接从房屋 2 到房屋 1。
- 对于房屋对 (1, 3),可以直接从房屋 1 到房屋 3。
- 对于房屋对 (3, 1),可以直接从房屋 3 到房屋 1。
- 对于房屋对 (2, 3),可以直接从房屋 2 到房屋 3。
- 对于房屋对 (3, 2),可以直接从房屋 3 到房屋 2。
</pre>
<p><strong class="example">示例 2</strong></p>
<img alt="" src="https://assets.leetcode.com/uploads/2023/12/20/example3.png" style="width: 668px; height: 174px;" />
<pre>
<strong>输入:</strong>n = 5, x = 2, y = 4
<strong>输出:</strong>[10,8,2,0,0]
<strong>解释:</strong>对于每个距离 k ,满足要求的房屋对如下:
- 对于 k == 1满足要求的房屋对有 (1, 2), (2, 1), (2, 3), (3, 2), (2, 4), (4, 2), (3, 4), (4, 3), (4, 5), 以及 (5, 4)。
- 对于 k == 2满足要求的房屋对有 (1, 3), (3, 1), (1, 4), (4, 1), (2, 5), (5, 2), (3, 5), 以及 (5, 3)。
- 对于 k == 3满足要求的房屋对有 (1, 5),以及 (5, 1) 。
- 对于 k == 4 和 k == 5不存在满足要求的房屋对。
</pre>
<p><strong>示例 3</strong></p>
<img alt="" src="https://assets.leetcode.com/uploads/2023/12/20/example5.png" style="width: 544px; height: 130px;" />
<pre>
<strong>输入:</strong>n = 4, x = 1, y = 1
<strong>输出:</strong>[6,4,2,0]
<strong>解释:</strong>对于每个距离 k ,满足要求的房屋对如下:
- 对于 k == 1满足要求的房屋对有 (1, 2), (2, 1), (2, 3), (3, 2), (3, 4), 以及 (4, 3)。
- 对于 k == 2满足要求的房屋对有 (1, 3), (3, 1), (2, 4), 以及 (4, 2)。
- 对于 k == 3满足要求的房屋对有 (1, 4), 以及 (4, 1)。
- 对于 k == 4不存在满足要求的房屋对。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 &lt;= n &lt;= 10<sup>5</sup></code></li>
<li><code>1 &lt;= x, y &lt;= n</code></li>
</ul>