Skip to content

Commit c026930

Browse files
committed
6 problems solved.
1 parent 7f089b7 commit c026930

File tree

6 files changed

+178
-0
lines changed

6 files changed

+178
-0
lines changed

src/1886.cpp

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
bool findRotation(vector<vector<int>>& mat, vector<vector<int>>& target) {
2+
int row = mat.size();
3+
bool flag = true;
4+
5+
for (int r = 0; r < row; ++r)
6+
{
7+
for (int c = 0; c < row; ++c)
8+
{
9+
if (mat[r][c] != target[r][c])
10+
{
11+
flag = false;
12+
break;
13+
}
14+
}
15+
}
16+
17+
if (!flag)
18+
{
19+
flag = true;
20+
for (int r = 0; r < row; ++r)
21+
{
22+
for (int c = 0; c < row; ++c)
23+
{
24+
if (mat[r][c] != target[row-1-r][row-1-c])
25+
{
26+
flag = false;
27+
break;
28+
}
29+
}
30+
}
31+
}
32+
33+
if (!flag)
34+
{
35+
flag = true;
36+
for (int r = 0; r < row; ++r)
37+
{
38+
for (int c = 0; c < row; ++c)
39+
{
40+
if (mat[r][c] != target[row-1-c][r])
41+
{
42+
flag = false;
43+
break;
44+
}
45+
}
46+
}
47+
}
48+
49+
if (!flag)
50+
{
51+
flag = true;
52+
for (int r = 0; r < row; ++r)
53+
{
54+
for (int c = 0; c < row; ++c)
55+
{
56+
if (mat[r][c] != target[c][row-1-r])
57+
{
58+
flag = false;
59+
break;
60+
}
61+
}
62+
}
63+
}
64+
65+
return flag;
66+
}

src/2078.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
int maxDistance(vector<int>& colors) {
2+
int maxdist = 0;
3+
int len = colors.size();
4+
for (int i = 0; i < len-1; ++i)
5+
{
6+
for (int j = i+1; j < len; ++j)
7+
{
8+
if (colors[i] != colors[j])
9+
{
10+
maxdist = j-i > maxdist ? j-i : maxdist;
11+
}
12+
}
13+
}
14+
15+
return maxdist;
16+
}

src/2085.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
int countWords(vector<string>& words1, vector<string>& words2) {
2+
int len1 = words1.size();
3+
int len2 = words2.size();
4+
5+
map<string, int> mp1, mp2;
6+
for (int i = 0; i < len1; ++i)
7+
mp1[words1[i]]++;
8+
for (int i = 0; i < len2; ++i)
9+
mp2[words2[i]]++;
10+
11+
int ct = 0;
12+
for (auto iter = mp1.begin(); iter != mp1.end(); ++iter)
13+
{
14+
if (iter->second == 1 && mp2[iter->first] == 1)
15+
{
16+
++ct;
17+
}
18+
}
19+
20+
return ct;
21+
}

src/2089.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
vector<int> targetIndices(vector<int>& nums, int target) {
2+
int len = nums.size();
3+
int arr[101] = {0};
4+
for (int i = 0; i < len; ++i)
5+
arr[nums[i]]++;
6+
7+
if (arr[target] == 0)
8+
return {};
9+
10+
vector<int> res(arr[target], 0);
11+
int ct = 0;
12+
ct = accumulate(arr, arr+target, ct);
13+
for (int i = 0; i < arr[target]; ++i)
14+
res[i] = ct+i;
15+
16+
return res;
17+
}

src/2099.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
vector<int> maxSubsequence(vector<int>& nums, int k) {
2+
struct Elem
3+
{
4+
int val;
5+
int pos;
6+
Elem(int v = 0, int p = 0):val(v),pos(p){}
7+
};
8+
9+
int len = nums.size();
10+
vector<Elem> vec(len, Elem());
11+
for (int i = 0; i < len; ++i)
12+
{
13+
vec[i].val = nums[i];
14+
vec[i].pos = i;
15+
}
16+
17+
auto cmp = [](const Elem& a, const Elem& b) {
18+
return (a.val < b.val) || (a.val == b.val && a.pos < b.pos);
19+
};
20+
auto cmp2 = [](const Elem& a, const Elem& b) {
21+
return a.pos < b.pos;
22+
};
23+
24+
sort(vec.begin(), vec.end(), cmp);
25+
sort(vec.begin()+len-k, vec.end(), cmp2);
26+
27+
vector<int> res(k, 0);
28+
for (int i = 0; i < k; ++i)
29+
res[i] = vec[i+len-k].val;
30+
31+
return res;
32+
}

src/2103.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
int countPoints(string rings) {
2+
vector<vector<int>> flag{10, {0,0,0}};
3+
int len = rings.size();
4+
5+
int i = 0;
6+
while (i < len)
7+
{
8+
int pos = rings[i+1]-'0';
9+
if (rings[i] == 'R')
10+
flag[pos][0] = 1;
11+
else if (rings[i] == 'G')
12+
flag[pos][1] = 1;
13+
else
14+
flag[pos][2] = 1;
15+
i += 2;
16+
}
17+
18+
int ct = 0;
19+
for (int i = 0; i < 10; ++i)
20+
{
21+
if (flag[i][0] == 1 && flag[i][1] == 1 && flag[i][2] == 1)
22+
++ct;
23+
}
24+
25+
return ct;
26+
}

0 commit comments

Comments
 (0)