题目
https://leetcode.cn/problems/minimum-pair-removal-to-sort-array-ii/description/
给你一个数组 nums,你可以执行以下操作任意次数:
返回将数组变为 非递减 所需的 最小操作次数 。
如果一个数组中每个元素都大于或等于它前一个元素(如果存在的话),则称该数组为非递减。
-109<= nums[i] <= 109#懒删除堆 (就是在堆中数据弹出的时候,额外判断一下这个数据是否"有效")
#两个有序集 (c++的set , python的SortedList)
1. 2608的难度分,差不多属于'一眼放弃'的难度,于是想起了有位大家的方法是抄写,尝试一下. 有以下几个小经验:
1.0 先试着用自己的办法看看哪里走不通了.
本例,朴素模拟是容易想到的,但时间复杂度会是O(n2)
那么,如何降低复杂度呢?
对于每次操作之后,重新找最小的和,是不是可用堆优化呢?
以及判断非递减是否可以优化?
1.1 抄写的东西难度,还是要在当前知识与理解的边缘.
1.2 先尝试理解每一句(代码行), 保证局部理解后,再去理解整体.
1.3 尝试将过程中的指涉关系清晰,全面,整体.
#这个问题,总能让自己想起,#智力是否可以提高
2. 写法一
优先队列(堆) + 双向链表







