Skip to content

Commit f5015d4

Browse files
committed
✨ feat(contest): backup answers
1 parent ddaaa60 commit f5015d4

File tree

6 files changed

+257
-0
lines changed

6 files changed

+257
-0
lines changed

6345.cpp

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include <iostream>
2+
3+
using namespace std;
4+
5+
class Solution {
6+
public:
7+
int kItemsWithMaximumSum(int numOnes, int numZeros, int numNegOnes, int k) {
8+
int sum = 0;
9+
if (k <= 0) return sum;
10+
if (k <= numOnes) return k;
11+
sum += numOnes;
12+
k -= numOnes;
13+
if (k <= numZeros) return sum;
14+
k -= numZeros;
15+
if (k <= numNegOnes) return sum - k;
16+
return sum - numNegOnes;
17+
}
18+
};
19+
20+
int main(int argc, char const *argv[]) {
21+
Solution s;
22+
cout << s.kItemsWithMaximumSum(3, 2, 0, 2) << endl;
23+
cout << s.kItemsWithMaximumSum(3, 2, 0, 4) << endl;
24+
return 0;
25+
}

6355.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include <iostream>
2+
#include <vector>
3+
4+
using namespace std;
5+
6+
class Solution {
7+
public:
8+
bool primeSubOperation(vector<int>& nums) {
9+
10+
}
11+
};
12+
13+
int main(int argc, char const* argv[]) {
14+
Solution s;
15+
vector<int> v1 = {4, 9, 6, 10}, v2 = {6, 8, 11, 12}, v3 = {5, 8, 3};
16+
cout << s.primeSubOperation(v1) << endl;
17+
cout << s.primeSubOperation(v2) << endl;
18+
cout << s.primeSubOperation(v3) << endl;
19+
return 0;
20+
}

6357.cpp

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include <iostream>
2+
#include <vector>
3+
4+
using namespace std;
5+
6+
class Solution {
7+
public:
8+
vector<long long> minOperations(vector<int>& nums, vector<int>& queries) {
9+
int n = nums.size(), m = queries.size();
10+
vector<long long> ret(m, 0);
11+
for (auto i = 0; i < n; ++i) {
12+
for (auto j = 0; j < m; ++j) {
13+
ret[j] += nums[i] - queries[j] > 0 ? nums[i] - queries[j]
14+
: queries[j] - nums[i];
15+
}
16+
}
17+
return ret;
18+
}
19+
};
20+
21+
int main(int argc, char const* argv[]) {
22+
Solution s;
23+
vector<int> n1 = {3, 1, 6, 8}, n2 = {2, 9, 6, 3}, n3 = {};
24+
vector<int> q1 = {1, 5}, q2 = {10}, q3 = {};
25+
26+
auto ret = s.minOperations(n2, q2);
27+
for (auto i : ret) {
28+
cout << i << " ";
29+
}
30+
cout << endl;
31+
32+
return 0;
33+
}

6362.cpp

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#include <string>
2+
#include <vector>
3+
#include <iostream>
4+
#include <algorithm>
5+
6+
using namespace std;
7+
8+
class Solution {
9+
public:
10+
int findTheLongestBalancedSubstring(string s) {
11+
int n = s.size();
12+
int mx = 0, zsum = 0, osum = 0;
13+
int state = 0;
14+
15+
for (int i = 0; i < n; ++i) {
16+
switch (state) {
17+
case 0: {
18+
if (s[i] == '0') {
19+
state = 1;
20+
zsum++;
21+
}
22+
} break;
23+
case 1: {
24+
if (s[i] == '0') {
25+
zsum++;
26+
} else {
27+
state = 2;
28+
osum++;
29+
if (osum == zsum) {
30+
mx = max(mx, 2 * osum);
31+
}
32+
}
33+
} break;
34+
case 2: {
35+
if (s[i] == '0') {
36+
zsum = 1;
37+
osum = 0;
38+
state = 1;
39+
} else {
40+
osum++;
41+
if (osum == zsum) {
42+
mx = max(mx, 2 * osum);
43+
}
44+
}
45+
} break;
46+
}
47+
}
48+
49+
return mx;
50+
}
51+
};
52+
53+
int main(int argc, char const *argv[]) {
54+
Solution s;
55+
56+
cout << s.findTheLongestBalancedSubstring("01000111") << endl;
57+
cout << s.findTheLongestBalancedSubstring("00111") << endl;
58+
cout << s.findTheLongestBalancedSubstring("111") << endl;
59+
cout << s.findTheLongestBalancedSubstring("01") << endl;
60+
61+
return 0;
62+
}

6363.cpp

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#include <string>
2+
#include <vector>
3+
#include <iostream>
4+
#include <unordered_map>
5+
#include <algorithm>
6+
#include <unordered_set>
7+
8+
using namespace std;
9+
10+
class Solution {
11+
public:
12+
vector<vector<int>> findMatrix(vector<int>& nums) {
13+
vector<vector<int>> ret;
14+
unordered_map<int, int> hash;
15+
unordered_set<int> collect;
16+
for (auto nu : nums) {
17+
hash[nu] = hash[nu] + 1;
18+
collect.insert(nu);
19+
}
20+
21+
while (!collect.empty()) {
22+
vector<int> row;
23+
for (auto i = hash.begin(); i != hash.end(); ++i) {
24+
if (i->second == 0) {
25+
continue;
26+
} else {
27+
row.push_back(i->first);
28+
i->second = i->second - 1;
29+
if (i->second == 0) {
30+
collect.erase(i->first);
31+
}
32+
}
33+
}
34+
ret.push_back(row);
35+
}
36+
37+
return ret;
38+
}
39+
};
40+
41+
int main(int argc, char const* argv[]) {
42+
Solution s;
43+
vector<int> v1 = {1, 3, 4, 1, 2, 3, 1};
44+
vector<int> v2 = {1, 2, 3, 4};
45+
auto res1 = s.findMatrix(v1);
46+
for (auto r : res1) {
47+
for (auto c : r) {
48+
cout << c << " ";
49+
}
50+
cout << endl;
51+
}
52+
53+
auto res2 = s.findMatrix(v2);
54+
for (auto r : res2) {
55+
for (auto c : r) {
56+
cout << c << " ";
57+
}
58+
cout << endl;
59+
}
60+
return 0;
61+
}

6364.cpp

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#include <string>
2+
#include <vector>
3+
#include <iostream>
4+
#include <unordered_map>
5+
#include <algorithm>
6+
#include <unordered_set>
7+
8+
using namespace std;
9+
10+
class Solution {
11+
public:
12+
int miceAndCheese(vector<int>& reward1, vector<int>& reward2, int k) {
13+
struct cheese {
14+
int value;
15+
int mouse;
16+
int m1;
17+
int m2;
18+
bool operator<(const cheese& c) { return this->value > c.value; }
19+
};
20+
21+
int ret = 0, n = reward1.size();
22+
vector<cheese> c;
23+
vector<int> v(n, 0);
24+
for (int i = 0; i < n; ++i) {
25+
cheese ch;
26+
ch.value = reward1[i] - reward2[i];
27+
ch.m1 = reward1[i];
28+
ch.m2 = reward2[i];
29+
c.push_back(ch);
30+
}
31+
32+
sort(c.begin(), c.end());
33+
34+
for (int i = 0; i < k; ++i) {
35+
ret += c[i].m1;
36+
}
37+
38+
for (int i = k; i < n; ++i) {
39+
ret += c[i].m2;
40+
}
41+
return ret;
42+
}
43+
};
44+
45+
int main(int argc, char const* argv[]) {
46+
Solution s;
47+
vector<int> rw11 = {1, 1, 3, 4}, rw12 = {4, 4, 1, 1}, rw21 = {1, 1},
48+
rw22 = {1, 1}, rw31 = {1, 4, 4, 6, 4}, rw32 = {6, 5, 3, 6, 1};
49+
int k1 = 2, k2 = 2, k3 = 1;
50+
51+
cout << s.miceAndCheese(rw11, rw12, k1) << endl;
52+
cout << s.miceAndCheese(rw21, rw22, k2) << endl;
53+
cout << s.miceAndCheese(rw31, rw32, k3) << endl;
54+
55+
return 0;
56+
}

0 commit comments

Comments
 (0)