1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-10-22 21:46:46 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
This commit is contained in:
2022-05-02 23:44:12 +08:00
parent 7ea03594b3
commit 2a71c78585
4790 changed files with 11696 additions and 10944 deletions

View File

@@ -12,7 +12,7 @@
"translatedContent": "<p>给你一个下标从 <strong>0</strong>&nbsp;开始包含 <code>n</code>&nbsp;个正整数的数组&nbsp;<code>arr</code>&nbsp;,和一个正整数&nbsp;<code>k</code>&nbsp;。</p>\n\n<p>如果对于每个满足&nbsp;<code>k &lt;= i &lt;= n-1</code>&nbsp;的下标&nbsp;<code>i</code>&nbsp;,都有&nbsp;<code>arr[i-k] &lt;= arr[i]</code>&nbsp;,那么我们称&nbsp;<code>arr</code>&nbsp;是 <strong>K</strong>&nbsp;<strong>递增</strong> 的。</p>\n\n<ul>\n\t<li>比方说,<code>arr = [4, 1, 5, 2, 6, 2]</code>&nbsp;对于&nbsp;<code>k = 2</code>&nbsp;是 K 递增的,因为:\n\n\t<ul>\n\t\t<li><code>arr[0] &lt;= arr[2] (4 &lt;= 5)</code></li>\n\t\t<li><code>arr[1] &lt;= arr[3] (1 &lt;= 2)</code></li>\n\t\t<li><code>arr[2] &lt;= arr[4] (5 &lt;= 6)</code></li>\n\t\t<li><code>arr[3] &lt;= arr[5] (2 &lt;= 2)</code></li>\n\t</ul>\n\t</li>\n\t<li>但是,相同的数组&nbsp;<code>arr</code>&nbsp;对于&nbsp;<code>k = 1</code>&nbsp;不是 K 递增的(因为&nbsp;<code>arr[0] &gt; arr[1]</code>),对于&nbsp;<code>k = 3</code>&nbsp;也不是 K 递增的(因为&nbsp;<code>arr[0] &gt; arr[3]</code>&nbsp;)。</li>\n</ul>\n\n<p>每一次 <strong>操作</strong>&nbsp;中,你可以选择一个下标&nbsp;<code>i</code> 并将&nbsp;<code>arr[i]</code> <strong>改成任意&nbsp;</strong>正整数。</p>\n\n<p>请你返回对于给定的 <code>k</code>&nbsp;,使数组变成 K 递增的 <strong>最少操作次数</strong>&nbsp;。</p>\n\n<p>&nbsp;</p>\n\n<p><strong>示例 1</strong></p>\n\n<pre><b>输入:</b>arr = [5,4,3,2,1], k = 1\n<b>输出:</b>4\n<strong>解释:\n</strong>对于 k = 1 ,数组最终必须变成非递减的。\n可行的 K 递增结果数组为 [5,<em><strong>6</strong></em>,<em><strong>7</strong></em>,<em><strong>8</strong></em>,<em><strong>9</strong></em>][<em><strong>1</strong></em>,<em><strong>1</strong></em>,<em><strong>1</strong></em>,<em><strong>1</strong></em>,1][<em><strong>2</strong></em>,<em><strong>2</strong></em>,3,<em><strong>4</strong></em>,<em><strong>4</strong></em>] 。它们都需要 4 次操作。\n次优解是将数组变成比方说 [<em><strong>6</strong></em>,<em><strong>7</strong></em>,<em><strong>8</strong></em>,<em><strong>9</strong></em>,<em><strong>10</strong></em>] ,因为需要 5 次操作。\n显然我们无法使用少于 4 次操作将数组变成 K 递增的。\n</pre>\n\n<p><strong>示例 2</strong></p>\n\n<pre><b>输入:</b>arr = [4,1,5,2,6,2], k = 2\n<b>输出:</b>0\n<strong>解释:</strong>\n这是题目描述中的例子。\n对于每个满足 2 &lt;= i &lt;= 5 的下标 i ,有 arr[i-2] &lt;=<b> </b>arr[i] 。\n由于给定数组已经是 K 递增的,我们不需要进行任何操作。</pre>\n\n<p><strong>示例 3</strong></p>\n\n<pre><strong>输入:</strong>arr = [4,1,5,2,6,2], k = 3\n<b>输出:</b>2\n<strong>解释:</strong>\n下标 3 和 5 是仅有的 3 &lt;= i &lt;= 5 且不满足 arr[i-3] &lt;= arr[i] 的下标。\n将数组变成 K 递增的方法之一是将 arr[3] 变为 4 ,且将 arr[5] 变成 5 。\n数组变为 [4,1,5,<em><strong>4</strong></em>,6,<em><strong>5</strong></em>] 。\n可能有其他方法将数组变为 K 递增的,但没有任何一种方法需要的操作次数小于 2 次。\n</pre>\n\n<p>&nbsp;</p>\n\n<p><strong>提示:</strong></p>\n\n<ul>\n\t<li><code>1 &lt;= arr.length &lt;= 10<sup>5</sup></code></li>\n\t<li><code>1 &lt;= arr[i], k &lt;= arr.length</code></li>\n</ul>\n",
"isPaidOnly": false,
"difficulty": "Hard",
"likes": 40,
"likes": 42,
"dislikes": 0,
"isLiked": null,
"similarQuestions": "[]",
@@ -143,7 +143,7 @@
"__typename": "CodeSnippetNode"
}
],
"stats": "{\"totalAccepted\": \"3.8K\", \"totalSubmission\": \"11.4K\", \"totalAcceptedRaw\": 3762, \"totalSubmissionRaw\": 11431, \"acRate\": \"32.9%\"}",
"stats": "{\"totalAccepted\": \"3.8K\", \"totalSubmission\": \"11.6K\", \"totalAcceptedRaw\": 3840, \"totalSubmissionRaw\": 11595, \"acRate\": \"33.1%\"}",
"hints": [
"Can we divide the array into non-overlapping subsequences and simplify the problem?",
"In the final array, arr[i-k] ≤ arr[i] should hold. We can use this to divide the array into at most k non-overlapping sequences, where arr[i] will belong to the (i%k)th sequence.",