2099. 找到和最大的长度为 K 的子序列 - 力扣(LeetCode) (leetcode-cn.com)
首先放上运行结果:
思路
利用pair,把元素值和其在原数组中的位置关联在一起.
首先根据元素值val来构造最小堆,利用最小堆找出最大的k个元素;
然后根据位置下标idx来调整最小堆;
最后依次从堆顶取出元素值,放入最终的数组ans中.
代码
#define NOP 0
#define top 1
#define vacancy 0x7fffffff
class Solution {
typedef pair<int, int> cor;
enum subject { VAL, IDX };
cor* minHeap;
int k;
public:
vector<int> maxSubsequence(vector<int&g