干
我1700名
我有徽章了
抽插Knight
抽插左手
爽
Q1
有一串阵列
对于每个长度k的子阵列
留下前x多的元素
如果一样多的话数字大的优先留下
请问每个子阵列的和是多少
思路:
暴力找出每个子阵列之后
再直接暴力拿出最小的直到剩下x种元素
```cpp
class Solution {
public:
vector<int> findXSum(vector<int>& nums, int k, int x)
{
int n = nums.size();
vector<int> res(n-k+1);
int l = 0;
int r = 0;
for(int i = 0 ; i < n-k+1 ; i ++)
{
vector<int> tmp(51,0);
int cnt = 0;
for(int j = i ; j < i+k ; j ++)
{
if(tmp[nums[j]] == 0)cnt ++;
tmp[nums[j]]++;
}
// cout << "??" << cnt << endl;
while(cnt > x)
{
//cout << " ?????? " << endl;
int mi = 0;
int micnt = 100;
for(int k = 0 ; k < 51 ; k ++)
{
if(tmp[k] == 0)continue;
if(tmp[k] < micnt)
{
// cout << " ?????? " << endl;
micnt = tmp[k];
mi = k;
}
}
tmp[mi] = 0;
cnt