LCP 40. 心算挑战
题目链接:LCP 40. 心算挑战
代码如下:
class Solution
{
public:
int maxmiumScore(vector<int>& cards, int cnt)
{
sort(cards.begin(), cards.end(), greater<int>());
int s = accumulate(cards.begin(), cards.begin() + cnt, 0);
if (s % 2 == 0) { return s; }
auto replace_sum = [&](int x)->int
{
for (int i = cnt; i < cards.size(); i++)
{
if (cards[i] % 2 != x % 2)
{
return s - x + cards[i];
}
}
return 0;
};
int x = cards[cnt - 1];
int res = replace_sum(x);
for (int i = cnt - 2; i >= 0; --i)
{
if (cards[i] % 2 != x % 2)
{
res = max(res, replace_sum(cards[i]));
}
}
return res;
}
};