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)/子矩形查询 [subrectangle-queries].html
2022-03-29 12:43:11 +08:00

82 lines
3.2 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>请你实现一个类&nbsp;<code>SubrectangleQueries</code>&nbsp;,它的构造函数的参数是一个 <code>rows x cols</code>&nbsp;的矩形(这里用整数矩阵表示),并支持以下两种操作:</p>
<p>1.<code>&nbsp;updateSubrectangle(int row1, int col1, int row2, int col2, int newValue)</code></p>
<ul>
<li>&nbsp;<code>newValue</code>&nbsp;更新以&nbsp;<code>(row1,col1)</code>&nbsp;为左上角且以&nbsp;<code>(row2,col2)</code>&nbsp;为右下角的子矩形。</li>
</ul>
<p>2.<code>&nbsp;getValue(int row, int col)</code></p>
<ul>
<li>返回矩形中坐标 <code>(row,col)</code> 的当前值。</li>
</ul>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><strong>输入:</strong>
[&quot;SubrectangleQueries&quot;,&quot;getValue&quot;,&quot;updateSubrectangle&quot;,&quot;getValue&quot;,&quot;getValue&quot;,&quot;updateSubrectangle&quot;,&quot;getValue&quot;,&quot;getValue&quot;]
[[[[1,2,1],[4,3,4],[3,2,1],[1,1,1]]],[0,2],[0,0,3,2,5],[0,2],[3,1],[3,0,3,2,10],[3,1],[0,2]]
<strong>输出:</strong>
[null,1,null,5,5,null,10,5]
<strong>解释:</strong>
SubrectangleQueries subrectangleQueries = new SubrectangleQueries([[1,2,1],[4,3,4],[3,2,1],[1,1,1]]);
// 初始的 (4x3) 矩形如下:
// 1 2 1
// 4 3 4
// 3 2 1
// 1 1 1
subrectangleQueries.getValue(0, 2); // 返回 1
subrectangleQueries.updateSubrectangle(0, 0, 3, 2, 5);
// 此次更新后矩形变为:
// 5 5 5
// 5 5 5
// 5 5 5
// 5 5 5
subrectangleQueries.getValue(0, 2); // 返回 5
subrectangleQueries.getValue(3, 1); // 返回 5
subrectangleQueries.updateSubrectangle(3, 0, 3, 2, 10);
// 此次更新后矩形变为:
// 5 5 5
// 5 5 5
// 5 5 5
// 10 10 10
subrectangleQueries.getValue(3, 1); // 返回 10
subrectangleQueries.getValue(0, 2); // 返回 5
</pre>
<p><strong>示例 2</strong></p>
<pre><strong>输入:</strong>
[&quot;SubrectangleQueries&quot;,&quot;getValue&quot;,&quot;updateSubrectangle&quot;,&quot;getValue&quot;,&quot;getValue&quot;,&quot;updateSubrectangle&quot;,&quot;getValue&quot;]
[[[[1,1,1],[2,2,2],[3,3,3]]],[0,0],[0,0,2,2,100],[0,0],[2,2],[1,1,2,2,20],[2,2]]
<strong>输出:</strong>
[null,1,null,100,100,null,20]
<strong>解释:</strong>
SubrectangleQueries subrectangleQueries = new SubrectangleQueries([[1,1,1],[2,2,2],[3,3,3]]);
subrectangleQueries.getValue(0, 0); // 返回 1
subrectangleQueries.updateSubrectangle(0, 0, 2, 2, 100);
subrectangleQueries.getValue(0, 0); // 返回 100
subrectangleQueries.getValue(2, 2); // 返回 100
subrectangleQueries.updateSubrectangle(1, 1, 2, 2, 20);
subrectangleQueries.getValue(2, 2); // 返回 20
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li>最多有&nbsp;<code>500</code>&nbsp;<code>updateSubrectangle</code>&nbsp;<code>getValue</code>&nbsp;操作。</li>
<li><code>1 &lt;= rows, cols &lt;= 100</code></li>
<li><code>rows ==&nbsp;rectangle.length</code></li>
<li><code>cols == rectangle[i].length</code></li>
<li><code>0 &lt;= row1 &lt;= row2 &lt; rows</code></li>
<li><code>0 &lt;= col1 &lt;= col2 &lt; cols</code></li>
<li><code>1 &lt;= newValue, rectangle[i][j] &lt;= 10^9</code></li>
<li><code>0 &lt;= row &lt; rows</code></li>
<li><code>0 &lt;= col &lt; cols</code></li>
</ul>