mirror of
https://github.com/lWolvesl/leetcode.git
synced 2026-01-12 18:08:38 +08:00
routine
This commit is contained in:
18
25/12/944.cpp
Normal file
18
25/12/944.cpp
Normal file
@@ -0,0 +1,18 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class Solution {
|
||||
public:
|
||||
int minDeletionSize(std::vector<std::string>& strs) {
|
||||
int ans = 0;
|
||||
for(int i = 0;i<strs[0].size();i++){
|
||||
for (int j = 1; j < strs.size(); j++) {
|
||||
if (strs[j][i] < strs[j-1][i]) {
|
||||
ans++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
};
|
||||
35
25/12/comp/20q1.cpp
Normal file
35
25/12/comp/20q1.cpp
Normal 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
25
25/12/comp/20q2.cpp
Normal 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;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user