Skip to content

Commit 3fffff6

Browse files
committed
5 problems solved.
1 parent f909409 commit 3fffff6

File tree

5 files changed

+150
-0
lines changed

5 files changed

+150
-0
lines changed

src/1103.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
vector<int> distributeCandies(int candies, int num_people) {
2+
int turn = 1;
3+
while (true)
4+
{
5+
int t = (1+num_people*turn)*num_people*turn/2;
6+
if (t >= candies)
7+
break;
8+
++turn;
9+
}
10+
11+
vector<int> res(num_people, 0);
12+
for (int i = 1; i <= num_people; ++i)
13+
res[i-1] = i*(turn-1) + (turn-1)*(turn-2)*num_people/2;
14+
int i = 0;
15+
candies -= (1+(turn-1)*num_people)*(turn-1)*num_people/2;
16+
while (candies > 0 && i < num_people)
17+
{
18+
int n = i+1+(turn-1)*num_people;
19+
if (n <= candies)
20+
{
21+
res[i] += n;
22+
candies -= n;
23+
}
24+
else
25+
{
26+
res[i] += candies;
27+
break;
28+
}
29+
++i;
30+
}
31+
32+
return res;
33+
}

src/1137.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
int tribonacci(int n) {
2+
int arr[3] = {0,1,1};
3+
if (n <= 2)
4+
return arr[n];
5+
6+
for (int i = 3; i <= n; ++i)
7+
{
8+
int t = arr[0] + arr[1] + arr[2];
9+
arr[0] = arr[1];
10+
arr[1] = arr[2];
11+
arr[2] = t;
12+
}
13+
14+
return arr[2];
15+
}

src/1170.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
vector<int> numSmallerByFrequency(vector<string>& queries, vector<string>& words) {
2+
int len = queries.size();
3+
int sz = words.size();
4+
5+
vector<int> res(len, 0);
6+
vector<int> freq(sz, 0);
7+
for (int i = 0; i < sz; ++i)
8+
freq[i] = calFreq(words[i]);
9+
sort(freq.begin(), freq.end());
10+
11+
for (int i = 0; i < len; ++i)
12+
{
13+
int t = calFreq(queries[i]);
14+
auto iter = upper_bound(freq.begin(), freq.end(), t);
15+
res[i] = freq.end() - iter;
16+
}
17+
18+
return res;
19+
}
20+
21+
int calFreq(const string& str)
22+
{
23+
int len = str.size();
24+
int ct = 1;
25+
char minval = str[0];
26+
for (int i = 1; i < len; ++i)
27+
{
28+
if (str[i] < minval)
29+
{
30+
minval = str[i];
31+
ct = 1;
32+
}
33+
else if (str[i] == minval)
34+
{
35+
++ct;
36+
}
37+
}
38+
39+
return ct;
40+
}

src/1189.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
int maxNumberOfBalloons(string text) {
2+
int len = text.size();
3+
if (len <= 5)
4+
return 0;
5+
6+
int arr[5] = {0};
7+
for (int i = 0; i < len; ++i)
8+
{
9+
switch(text[i])
10+
{
11+
case 'a':
12+
arr[0]++;
13+
break;
14+
case 'b':
15+
arr[1]++;
16+
break;
17+
case 'l':
18+
arr[4]++;
19+
break;
20+
case 'n':
21+
arr[2]++;
22+
break;
23+
case 'o':
24+
arr[3]++;
25+
break;
26+
}
27+
}
28+
29+
arr[3] /= 2;
30+
arr[4] /= 2;
31+
int minnum = arr[0];
32+
for (int i = 1; i < 5; ++i)
33+
if (arr[i] < minnum)
34+
minnum = arr[i];
35+
return minnum;
36+
}

src/559.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
int maxDepth(Node* root) {
2+
if (root == nullptr)
3+
return 0;
4+
int maxdepth = 0;
5+
maxdepth = search(root);
6+
7+
return maxdepth+1;
8+
}
9+
10+
int search(Node* node)
11+
{
12+
auto& vec = node->children;
13+
int len = vec.size();
14+
if (len == 0)
15+
return 0;
16+
17+
int maxd = 0;
18+
for (int i = 0; i < len; ++i)
19+
{
20+
int t = search(vec[i]);
21+
if (t > maxd)
22+
maxd = t;
23+
}
24+
25+
return maxd+1;
26+
}

0 commit comments

Comments
 (0)