1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-10 18:48:13 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/找出网格的区域平均强度 [find-the-grid-of-region-average].html
2024-02-09 01:05:41 +08:00

49 lines
3.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>给你一个下标从 <strong>0</strong> 开始、大小为 <code>m x n</code> 的网格 <code>image</code> ,表示一个灰度图像,其中 <code>image[i][j]</code> 表示在范围 <code>[0..255]</code> 内的某个像素强度。另给你一个<strong> 非负 </strong>整数 <code>threshold</code></p>
<p>如果 <code>image[a][b]</code><code>image[c][d]</code> 满足 <code>|a - c| + |b - d| == 1</code> ,则称这两个像素是<strong> 相邻像素</strong></p>
<p><strong>区域 </strong>是一个 <code>3 x 3</code> 的子网格,且满足区域中任意两个 <strong>相邻</strong> 像素之间,像素强度的<strong> 绝对差 </strong><strong> 小于或等于 </strong><code>threshold</code></p>
<p><strong>区域</strong> 内的所有像素都认为属于该区域,而一个像素 <strong>可以 </strong>属于 <strong>多个</strong> 区域。</p>
<p>你需要计算一个下标从 <strong>0</strong> 开始、大小为 <code>m x n</code> 的网格 <code>result</code> ,其中 <code>result[i][j]</code><code>image[i][j]</code> 所属区域的 <strong>平均 </strong>强度,<strong>向下取整 </strong>到最接近的整数。如果 <code>image[i][j]</code> 属于多个区域,<code>result[i][j]</code> 是这些区域的<strong> </strong><strong>“取整后的平均强度”</strong><strong> 平均值</strong>,也 <strong>向下取整 </strong>到最接近的整数。如果 <code>image[i][j]</code> 不属于任何区域,则 <code>result[i][j]</code><strong> 等于 </strong><code>image[i][j]</code></p>
<p>返回网格 <code>result</code></p>
<p>&nbsp;</p>
<p><strong class="example">示例 1</strong></p>
<img alt="" src="https://assets.leetcode.com/uploads/2023/12/21/example0corrected.png" style="width: 832px; height: 275px;" />
<pre>
<strong>输入:</strong>image = [[5,6,7,10],[8,9,10,10],[11,12,13,10]], threshold = 3
<strong>输出:</strong>[[9,9,9,9],[9,9,9,9],[9,9,9,9]]
<strong>解释:</strong>图像中存在两个区域,如图片中的阴影区域所示。第一个区域的平均强度为 9 ,而第二个区域的平均强度为 9.67 ,向下取整为 9 。两个区域的平均强度为 (9 + 9) / 2 = 9 。由于所有像素都属于区域 1 、区域 2 或两者,因此 result 中每个像素的强度都为 9 。
注意,在计算多个区域的平均值时使用了向下取整的值,因此使用区域 2 的平均强度 9 来进行计算,而不是 9.67 。
</pre>
<p><strong class="example">示例 2</strong></p>
<img alt="" src="https://assets.leetcode.com/uploads/2023/12/21/example1corrected.png" style="width: 805px; height: 377px;" />
<pre>
<strong>输入:</strong>image = [[10,20,30],[15,25,35],[20,30,40],[25,35,45]], threshold = 12
<strong>输出:</strong>[[25,25,25],[27,27,27],[27,27,27],[30,30,30]]
<strong>解释:</strong>图像中存在两个区域,如图片中的阴影区域所示。第一个区域的平均强度为 25 ,而第二个区域的平均强度为 30 。两个区域的平均强度为 (25 + 30) / 2 = 27.5 ,向下取整为 27 。图像中第 0 行的所有像素属于区域 1 ,因此 result 中第 0 行的所有像素为 25 。同理result 中第 3 行的所有像素为 30 。图像中第 1 行和第 2 行的像素属于区域 1 和区域 2 ,因此它们在 result 中的值为 27 。
</pre>
<p><strong class="example">示例 3</strong></p>
<pre>
<strong>输入:</strong>image = [[5,6,7],[8,9,10],[11,12,13]], threshold = 1
<strong>输出:</strong>[[5,6,7],[8,9,10],[11,12,13]]
<strong>解释:</strong>图像中不存在任何区域因此对于所有像素result[i][j] == image[i][j] 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>3 &lt;= n, m &lt;= 500</code></li>
<li><code>0 &lt;= image[i][j] &lt;= 255</code></li>
<li><code>0 &lt;= threshold &lt;= 255</code></li>
</ul>