This commit is contained in:
2025-12-21 02:24:18 +08:00
parent 31ed535887
commit e0912887c2
3 changed files with 78 additions and 0 deletions

35
25/12/comp/20q1.cpp Normal file
View File

@@ -0,0 +1,35 @@
#include <unordered_map>
class Solution {
public:
int minOperations(std::vector<int>& nums) {
std::unordered_map<int, int> m;
int count = 0;
for(auto num: nums){
m[num] ++;
if (m[num] > 1) {
count++;
}
}
if(count == 0){
return 0;
}
int ans = 0;
for (int i = 0; i<nums.size(); i++) {
if (m[nums[i]] > 1) {
m[nums[i]]--;
count--;
}
if ((i + 1) % 3 == 0) {
ans++;
}
if (count == 0) {
if ((i + 1) % 3 != 0) {
ans++;
}
break;
}
}
return ans;
}
};

25
25/12/comp/20q2.cpp Normal file
View File

@@ -0,0 +1,25 @@
#include <algorithm>
#include <immintrin.h>
#include <numeric>
#include <vector>
class Solution {
public:
int maximumSum(std::vector<int> &nums) {
int n = nums.size();
int ans = 0;
std::vector<int> b[3];
for (auto num : nums)
b[num % 3].push_back(num);
for (int i = 0; i < 3; i++) {
std::sort(b[i].begin(), b[i].end(), [](int a, int b) { return a > b; });
if (b[i].size() >= 3) {
ans = std::max(std::reduce(b[i].begin(), b[i].begin() + 3), ans);
}
}
if (b[0].size() && b[1].size() && b[2].size()) {
ans = std::max(ans, b[0][0] + b[1][0] + b[2][0]);
}
return ans;
}
};