File tree Expand file tree Collapse file tree 6 files changed +178
-0
lines changed Expand file tree Collapse file tree 6 files changed +178
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments