File tree Expand file tree Collapse file tree 6 files changed +158
-0
lines changed Expand file tree Collapse file tree 6 files changed +158
-0
lines changed Original file line number Diff line number Diff line change
1
+ int minimumRounds (vector<int >& tasks) {
2
+ map<int , int > mp;
3
+ int len = tasks.size ();
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ mp[tasks[i]]++;
7
+ }
8
+
9
+ int ct = 0 ;
10
+ for (auto & kv : mp)
11
+ {
12
+ if (kv.second < 2 )
13
+ return -1 ;
14
+ else if (kv.second %2 == 0 )
15
+ {
16
+ int n = kv.second /3 ;
17
+ ct += n%2 == 0 ? n+(kv.second -n*3 )/2 : n-1 +(kv.second -(n-1 )*3 )/2 ;
18
+ }
19
+ else
20
+ {
21
+ int n = kv.second /3 ;
22
+ ct += n%2 == 1 ? n+(kv.second -n*3 )/2 : n-1 +(kv.second -(n-1 )*3 )/2 ;
23
+ }
24
+ }
25
+
26
+ return ct;
27
+ }
Original file line number Diff line number Diff line change
1
+ string removeDigit (string number, char digit) {
2
+ int len = number.size ();
3
+ int pos = len;
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ if (number[i] == digit)
7
+ {
8
+ pos = i;
9
+ if (i < len-1 && number[i] < number[i+1 ])
10
+ break ;
11
+ }
12
+ }
13
+
14
+ string res (len-1 , ' ' );
15
+ int k = 0 ;
16
+ for (int i = 0 ; i < len; ++i)
17
+ {
18
+ if (i != pos)
19
+ res[k++] = number[i];
20
+ }
21
+
22
+ return res;
23
+ }
Original file line number Diff line number Diff line change
1
+ string largestGoodInteger (string num) {
2
+ int len = num.size ();
3
+ int i = 1 , ct = 1 ;
4
+ char c = num[0 ];
5
+ char goodchar = ' ' ;
6
+
7
+ while (i < len)
8
+ {
9
+ if (num[i] == c)
10
+ {
11
+ ++ct;
12
+ if (ct == 3 )
13
+ {
14
+ if (goodchar == ' ' )
15
+ goodchar = c;
16
+ else if (c > goodchar)
17
+ goodchar = c;
18
+
19
+ int j = i+1 ;
20
+ while (j < len && num[j] == c)
21
+ ++j;
22
+ if (j == len)
23
+ break ;
24
+ else
25
+ {
26
+ c = num[j];
27
+ ct = 1 ;
28
+ i = j+1 ;
29
+ }
30
+ }
31
+ else
32
+ ++i;
33
+ }
34
+ else
35
+ {
36
+ c = num[i];
37
+ ct = 1 ;
38
+ ++i;
39
+ }
40
+ }
41
+
42
+ if (goodchar != ' ' )
43
+ return string (3 , goodchar);
44
+ else
45
+ return " " ;
46
+ }
Original file line number Diff line number Diff line change
1
+ int divisorSubstrings (int num, int k) {
2
+ string s = to_string (num);
3
+ int len = s.size ();
4
+
5
+ int i, ct = 0 ;
6
+ int sum = 0 ;
7
+ for (i = 0 ; i < k; ++i)
8
+ sum = sum*10 + s[i]-' 0' ;
9
+
10
+ if (sum > 0 && num%sum == 0 )
11
+ ++ct;
12
+ i = 0 ;
13
+ int coef = pow (10 , k-1 );
14
+ for (int j = k; j < len; ++j)
15
+ {
16
+ sum = (sum - (s[i]-' 0' )*coef)*10 + s[j]-' 0' ;
17
+ if (sum > 0 && num%sum == 0 )
18
+ ++ct;
19
+ ++i;
20
+ }
21
+
22
+ return ct;
23
+ }
Original file line number Diff line number Diff line change
1
+ int percentageLetter (string s, char letter) {
2
+ int len = s.size ();
3
+ int ct = 0 ;
4
+ for (int i = 0 ; i < len; ++i)
5
+ {
6
+ if (s[i] == letter)
7
+ ++ct;
8
+ }
9
+
10
+ return ct*100 /len;
11
+ }
Original file line number Diff line number Diff line change
1
+ int maximumBags (vector<int >& capacity, vector<int >& rocks, int additionalRocks) {
2
+ int len = capacity.size ();
3
+ vector<int > lessvec (len, 0 );
4
+
5
+ for (int i = 0 ; i < len; ++i)
6
+ {
7
+ lessvec[i] = capacity[i]-rocks[i];
8
+ }
9
+
10
+ sort (lessvec.begin (), lessvec.end ());
11
+
12
+ int ct = 0 ;
13
+ for (int i = 0 ; i < len; ++i)
14
+ {
15
+ if (lessvec[i] == 0 )
16
+ ++ct;
17
+ else
18
+ {
19
+ if (additionalRocks >= lessvec[i])
20
+ {
21
+ additionalRocks -= lessvec[i];
22
+ ++ct;
23
+ }
24
+ }
25
+ }
26
+
27
+ return ct;
28
+ }
You can’t perform that action at this time.
0 commit comments