mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-10-22 21:46:46 +08:00
update
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
"translatedContent": "<p>给你一个下标从 <strong>0</strong> 开始包含 <code>n</code> 个正整数的数组 <code>arr</code> ,和一个正整数 <code>k</code> 。</p>\n\n<p>如果对于每个满足 <code>k <= i <= n-1</code> 的下标 <code>i</code> ,都有 <code>arr[i-k] <= arr[i]</code> ,那么我们称 <code>arr</code> 是 <strong>K</strong> <strong>递增</strong> 的。</p>\n\n<ul>\n\t<li>比方说,<code>arr = [4, 1, 5, 2, 6, 2]</code> 对于 <code>k = 2</code> 是 K 递增的,因为:\n\n\t<ul>\n\t\t<li><code>arr[0] <= arr[2] (4 <= 5)</code></li>\n\t\t<li><code>arr[1] <= arr[3] (1 <= 2)</code></li>\n\t\t<li><code>arr[2] <= arr[4] (5 <= 6)</code></li>\n\t\t<li><code>arr[3] <= arr[5] (2 <= 2)</code></li>\n\t</ul>\n\t</li>\n\t<li>但是,相同的数组 <code>arr</code> 对于 <code>k = 1</code> 不是 K 递增的(因为 <code>arr[0] > arr[1]</code>),对于 <code>k = 3</code> 也不是 K 递增的(因为 <code>arr[0] > arr[3]</code> )。</li>\n</ul>\n\n<p>每一次 <strong>操作</strong> 中,你可以选择一个下标 <code>i</code> 并将 <code>arr[i]</code> <strong>改成任意 </strong>正整数。</p>\n\n<p>请你返回对于给定的 <code>k</code> ,使数组变成 K 递增的 <strong>最少操作次数</strong> 。</p>\n\n<p> </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 <= i <= 5 的下标 i ,有 arr[i-2] <=<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 <= i <= 5 且不满足 arr[i-3] <= 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> </p>\n\n<p><strong>提示:</strong></p>\n\n<ul>\n\t<li><code>1 <= arr.length <= 10<sup>5</sup></code></li>\n\t<li><code>1 <= arr[i], k <= 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.",
|
||||
|
||||
Reference in New Issue
Block a user