File tree Expand file tree Collapse file tree 6 files changed +132
-0
lines changed Expand file tree Collapse file tree 6 files changed +132
-0
lines changed Original file line number Diff line number Diff line change
1
+ int averageOfSubtree (TreeNode* root) {
2
+ if (root == nullptr )
3
+ return 0 ;
4
+
5
+ int ct = 0 ;
6
+ int n = 0 ;
7
+ search (root, n, ct);
8
+
9
+ return ct;
10
+ }
11
+
12
+ int search (TreeNode* node, int & n, int & ct)
13
+ {
14
+ int sum = node->val ;
15
+ int p = 0 , q = 0 ;
16
+ if (node->left != nullptr )
17
+ sum += search (node->left , p, ct);
18
+ if (node->right != nullptr )
19
+ sum += search (node->right , q, ct);
20
+
21
+ if (sum/(p+q+1 ) == node->val )
22
+ ++ct;
23
+ n = p+q+1 ;
24
+ return sum;
25
+ }
Original file line number Diff line number Diff line change
1
+ vector<int > numberOfPairs (vector<int >& nums) {
2
+ int arr[101 ] = {0 };
3
+ int len = nums.size ();
4
+
5
+ for (int i = 0 ; i < len; ++i)
6
+ arr[nums[i]]++;
7
+
8
+ vector<int > res (2 , 0 );
9
+ for (int i = 0 ; i < 101 ; ++i)
10
+ {
11
+ res[0 ] += arr[i]/2 ;
12
+ res[1 ] += arr[i]%2 ;
13
+ }
14
+
15
+ return res;
16
+ }
Original file line number Diff line number Diff line change
1
+ string bestHand (vector<int >& ranks, vector<char >& suits) {
2
+ int nrank[14 ] = {0 };
3
+ char suit = suits[0 ];
4
+ int n = 0 , maxnum = 0 ;
5
+
6
+ for (int i = 0 ; i < 5 ; ++i)
7
+ {
8
+ if (suits[i] == suit)
9
+ ++n;
10
+ nrank[ranks[i]]++;
11
+ if (maxnum < 2 && nrank[ranks[i]] == 2 )
12
+ maxnum = 2 ;
13
+ else if (nrank[ranks[i]] == 3 )
14
+ maxnum = 3 ;
15
+ }
16
+
17
+ if (n == 5 )
18
+ return " Flush" ;
19
+ else if (maxnum == 3 )
20
+ return " Three of a Kind" ;
21
+ else if (maxnum == 2 )
22
+ return " Pair" ;
23
+ else
24
+ return " High Card" ;
25
+ }
Original file line number Diff line number Diff line change
1
+ char repeatedCharacter (string s) {
2
+ int num[26 ] = {0 };
3
+ int len = s.size ();
4
+
5
+ char c;
6
+ for (int i = 0 ; i < len; ++i)
7
+ {
8
+ if (num[s[i]-' a' ] == 1 )
9
+ {
10
+ c = s[i];
11
+ break ;
12
+ }
13
+ ++num[s[i]-' a' ];
14
+ }
15
+
16
+ return c;
17
+ }
Original file line number Diff line number Diff line change
1
+ vector<vector<int >> mergeSimilarItems (vector<vector<int >>& items1, vector<vector<int >>& items2) {
2
+ int len1 = items1.size ();
3
+ int len2 = items2.size ();
4
+
5
+ map<int , int > mp;
6
+ for (int i = 0 ; i < len1; ++i)
7
+ mp[items1[i][0 ]] += items1[i][1 ];
8
+ for (int i = 0 ; i < len2; ++i)
9
+ mp[items2[i][0 ]] += items2[i][1 ];
10
+
11
+ int sz = mp.size ();
12
+ int k = 0 ;
13
+ vector<vector<int >> res (sz, vector<int >(2 , 0 ));
14
+ for (auto iter = mp.begin (); iter != mp.end (); ++iter)
15
+ {
16
+ res[k][0 ] = iter->first ;
17
+ res[k][1 ] = iter->second ;
18
+ ++k;
19
+ }
20
+
21
+ return res;
22
+ }
Original file line number Diff line number Diff line change
1
+ int arithmeticTriplets (vector<int >& nums, int diff) {
2
+ int len = nums.size ();
3
+ int ct = 0 ;
4
+ for (int i = 0 ; i < len-2 ; ++i)
5
+ {
6
+ for (int j = i+1 ; j < len-1 ; ++j)
7
+ {
8
+ if (diff == nums[j]-nums[i])
9
+ {
10
+ for (int k = j+1 ; k < len; ++k)
11
+ {
12
+ if (nums[k]-nums[j] == diff)
13
+ {
14
+ ++ct;
15
+ break ;
16
+ }
17
+ else if (nums[k]-nums[j] > diff)
18
+ break ;
19
+ }
20
+ }
21
+ else if (nums[j]-nums[i] > diff)
22
+ break ;
23
+ }
24
+ }
25
+
26
+ return ct;
27
+ }
You can’t perform that action at this time.
0 commit comments