Skip to content

Commit 518fc7b

Browse files
committed
8 problems solved.
1 parent fb3318f commit 518fc7b

File tree

8 files changed

+245
-0
lines changed

8 files changed

+245
-0
lines changed

src/2409.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
int countDaysTogether(string arriveAlice, string leaveAlice, string arriveBob, string leaveBob) {
2+
int accum[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
3+
4+
int m1 = (arriveAlice[0]-'0')*10 + (arriveAlice[1]-'0')-1;
5+
int d1 = (arriveAlice[3]-'0')*10 + (arriveAlice[4]-'0');
6+
int m2 = (leaveAlice[0]-'0')*10 + (leaveAlice[1]-'0')-1;
7+
int d2 = (leaveAlice[3]-'0')*10 + (leaveAlice[4]-'0');
8+
int m3 = (arriveBob[0]-'0')*10 + (arriveBob[1]-'0')-1;
9+
int d3 = (arriveBob[3]-'0')*10 + (arriveBob[4]-'0');
10+
int m4 = (leaveBob[0]-'0')*10 + (leaveBob[1]-'0')-1;
11+
int d4 = (leaveBob[3]-'0')*10 + (leaveBob[4]-'0');
12+
13+
int start1 = accum[m1]+d1, end1 = accum[m2]+d2;
14+
int start2 = accum[m3]+d3, end2 = accum[m4]+d4;
15+
16+
if (start1 < start2)
17+
{
18+
if (start2 <= end1)
19+
{
20+
if (end1 < end2)
21+
return end1-start2+1;
22+
else
23+
return end2-start2+1;
24+
}
25+
else
26+
return 0;
27+
}
28+
else
29+
{
30+
if (start1 <= end2)
31+
{
32+
if (end2 < end1)
33+
return end2-start1+1;
34+
else
35+
return end1-start1+1;
36+
}
37+
else
38+
return 0;
39+
}
40+
}

src/2413.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
int smallestEvenMultiple(int n) {
2+
if (n%2 == 0)
3+
return n;
4+
else
5+
return 2*n;
6+
}

src/2414.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
int longestContinuousSubstring(string s) {
2+
int len = s.size();
3+
4+
int i = 1;
5+
int maxlen = 1, n = 1;
6+
char c = s[0];
7+
8+
while (i < len)
9+
{
10+
if (s[i] == c+1)
11+
{
12+
++n;
13+
}
14+
else
15+
{
16+
if (n > maxlen)
17+
maxlen = n;
18+
n = 1;
19+
}
20+
c = s[i];
21+
++i;
22+
}
23+
24+
if (n > maxlen)
25+
maxlen = n;
26+
27+
return maxlen;
28+
}

src/2415.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
TreeNode* reverseOddLevels(TreeNode* root) {
2+
deque<TreeNode*> dq;
3+
dq.push_back(root);
4+
5+
bool flag = true;
6+
7+
while (!dq.empty())
8+
{
9+
int n = dq.size();
10+
int ct = 0;
11+
for (int i = 0; i < n; ++i)
12+
{
13+
TreeNode* node = dq[i];
14+
if (node->left != nullptr)
15+
{
16+
dq.push_back(node->left);
17+
dq.push_back(node->right);
18+
ct += 2;
19+
}
20+
}
21+
22+
if (ct > 0)
23+
{
24+
if (flag)
25+
{
26+
int lim = ct/2;
27+
for (int i = 0; i < lim; ++i)
28+
{
29+
int tmp = dq[n+i]->val;
30+
dq[n+i]->val = dq[n+ct-1-i]->val;
31+
dq[n+ct-1-i]->val = tmp;
32+
}
33+
}
34+
35+
flag = !flag;
36+
dq.erase(dq.begin(), dq.begin()+n);
37+
}
38+
else
39+
break;
40+
}
41+
42+
return root;
43+
}

src/2418.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
vector<string> sortPeople(vector<string>& names, vector<int>& heights) {
2+
int len = names.size();
3+
vector<string> res(len, "");
4+
5+
map<int, string> mp;
6+
for (int i = 0; i < len; ++i)
7+
{
8+
mp[heights[i]] = names[i];
9+
}
10+
11+
int k = 0;
12+
for (auto iter = mp.rbegin(); iter != mp.rend(); ++iter)
13+
res[k++] = iter->second;
14+
15+
return res;
16+
}

src/2423.cpp

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
bool equalFrequency(string word) {
2+
int len = word.size();
3+
int arr[26] = {0};
4+
5+
for (int i = 0; i < len; ++i)
6+
{
7+
arr[word[i]-'a']++;
8+
}
9+
10+
int v1 = 0, v2 = 0;
11+
int n1 = 0, n2 = 0;
12+
13+
for (int i = 0; i < 26; ++i)
14+
{
15+
if (arr[i] != 0)
16+
{
17+
if (v1 == 0)
18+
{
19+
v1 = arr[i];
20+
}
21+
else if (v2 == 0 && v1 != arr[i])
22+
{
23+
v2 = arr[i];
24+
}
25+
else if (v2 != 0 && v1 != arr[i] && v2 != arr[i])
26+
return false;
27+
}
28+
}
29+
30+
if (v1 == 1 && v2 == 0)
31+
return true;
32+
33+
for (int i = 0; i < 26; ++i)
34+
{
35+
if (arr[i] != 0)
36+
{
37+
if (arr[i] == v1)
38+
++n1;
39+
if (arr[i] == v2)
40+
++n2;
41+
}
42+
}
43+
44+
if (n2 == 0)
45+
{
46+
if (n1 == 1)
47+
return true;
48+
else
49+
return false;
50+
}
51+
52+
if (n1 != 1 && n2 != 1)
53+
return false;
54+
else if (n1 == 1 && n2 != 1)
55+
{
56+
if (v1 == 1 || v1-v2 == 1)
57+
return true;
58+
else
59+
return false;
60+
}
61+
else if (n1 != 1 && n2 == 1)
62+
{
63+
if (v2 == 1 || v2-v1 == 1)
64+
return true;
65+
else
66+
return false;
67+
}
68+
else
69+
{
70+
if (v1 == 1 || v2 == 1 || abs(v1-v2) == 1)
71+
return true;
72+
else
73+
return false;
74+
}
75+
}

src/2427.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
int commonFactors(int a, int b) {
2+
int c;
3+
if (a < b)
4+
c = a;
5+
else
6+
c = b;
7+
8+
int lim = sqrt(c);
9+
int ct = 1;
10+
11+
for (int i = 2; i <= c; ++i)
12+
{
13+
if ((a%i == 0) && (b%i == 0))
14+
++ct;
15+
}
16+
17+
return ct;
18+
}

src/2428.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
int maxSum(vector<vector<int>>& grid) {
2+
int row = grid.size();
3+
int col = grid[0].size();
4+
5+
int maxsum = 0, sum = 0;
6+
7+
for (int r = 0; r < row-2; ++r)
8+
{
9+
for (int c = 0; c < col-2; ++c)
10+
{
11+
sum = grid[r][c]+grid[r][c+1]+grid[r][c+2]+grid[r+1][c+1]+
12+
grid[r+2][c]+grid[r+2][c+1]+grid[r+2][c+2];
13+
if (sum > maxsum)
14+
maxsum = sum;
15+
}
16+
}
17+
18+
return maxsum;
19+
}

0 commit comments

Comments
 (0)