Skip to content

Commit 9e11b0b

Browse files
authored
Create Readme.md
1 parent 9d6f113 commit 9e11b0b

File tree

1 file changed

+7
-0
lines changed
  • Greedy/2111.Minimum-Operations-to-Make-the-Array-K-Increasing

1 file changed

+7
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
### 2111.Minimum-Operations-to-Make-the-Array-K-Increasing
2+
3+
此题的本质就是在每个k间隔的系列里找到最长递增子序列的长度,其余未被选定的元素只需要使之与相邻的元素相同即可。这样这些未被选中的元素就对应着最少需要修改的数目。
4+
5+
这里的一个细节是:本题的LIS允许相同的元素。所以贪心法的时候需要用upper_bound。
6+
7+
此外有一个followup:如果要求构造所有元素为正、且严格的递增序列怎么办?这里会出现的一个问题是,找到LIS之后,其他元素的改动可能无法实现。比如[1,1,2],最长严格递增序列是[1,2],但是你无法只修改一个数字得到合法的解。方法是,将所有的元素都减去其下标(1,2,3...),然后去除掉负数,在其中找LIS(更确切的说是非递减序列)。在这个例子中,变换后的数组是[0,-1,-1]。所以其LIS的长度其实只有1. 去掉负数的那些元素k无论如何都无法成为一个严格递增序列里面的成员,原因是它之前的元素个数太少,即使第一个元素从1开始以公差1递增,到该元素时也超过了k本身。

0 commit comments

Comments
 (0)