幹
我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