Skip to content

Commit a05fcbe

Browse files
committed
9 problems solved.
1 parent 2e0f187 commit a05fcbe

File tree

9 files changed

+170
-0
lines changed

9 files changed

+170
-0
lines changed

src/2506.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
int similarPairs(vector<string>& words) {
2+
int len = words.size();
3+
vector<vector<int>> letters(len, vector<int>(27, 0));
4+
5+
for (int i = 0; i < len; ++i)
6+
{
7+
int n = words[i].size();
8+
for (int j = 0; j < n; ++j)
9+
{
10+
if (letters[i][words[i][j]-'a'] == 0)
11+
{
12+
letters[i][words[i][j]-'a'] = 1;
13+
letters[i][26]++;
14+
}
15+
}
16+
}
17+
18+
int ct = 0;
19+
for (int i = 0; i < len-1; ++i)
20+
{
21+
for (int j = i+1; j < len; ++j)
22+
{
23+
if (letters[i][26] == letters[j][26])
24+
{
25+
bool flag = true;
26+
for (int k = 0; k < 26; ++k)
27+
{
28+
if (letters[i][k] != letters[j][k])
29+
{
30+
flag = false;
31+
break;
32+
}
33+
}
34+
if (flag)
35+
++ct;
36+
}
37+
}
38+
}
39+
40+
return ct;
41+
}

src/2515.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
int closetTarget(vector<string>& words, string target, int startIndex) {
2+
int len = words.size();
3+
int i = startIndex;
4+
int mindist = len;
5+
int n = 0;
6+
7+
while (n < len)
8+
{
9+
if (words[i] == target)
10+
{
11+
int dist1 = abs(i-startIndex);
12+
int dist2 = len-dist1;
13+
if (dist1 < mindist)
14+
mindist = dist1;
15+
if (dist2 < mindist)
16+
mindist = dist2;
17+
}
18+
++i;
19+
++n;
20+
if (i == len)
21+
i = 0;
22+
}
23+
24+
return mindist != len ? mindist : -1;
25+
}

src/2520.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
int countDigits(int num) {
2+
int ct = 0;
3+
int val = num;
4+
while (val != 0)
5+
{
6+
int t = val%10;
7+
if (t != 0 && num%t == 0)
8+
++ct;
9+
val /= 10;
10+
}
11+
12+
return ct;
13+
}

src/2529.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
int maximumCount(vector<int>& nums) {
2+
int pos = nums.end() - upper_bound(nums.begin(), nums.end(), 0);
3+
int neg = lower_bound(nums.begin(), nums.end(), 0) - nums.begin();
4+
5+
return pos > neg ? pos : neg;
6+
}

src/2535.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
int differenceOfSum(vector<int>& nums) {
2+
int elesum = 0, digitsum = 0;
3+
int len = nums.size();
4+
5+
for (int i = 0; i < len; ++i)
6+
{
7+
elesum += nums[i];
8+
int tmp = nums[i];
9+
while (tmp != 0)
10+
{
11+
digitsum += tmp%10;
12+
tmp /= 10;
13+
}
14+
}
15+
16+
return abs(elesum - digitsum);
17+
}

src/2544.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
int alternateDigitSum(int n) {
2+
int sum = 0;
3+
int m = log10(n);
4+
const bool arr[10] = {true, false, true, false, true, false, true, false, true, false};
5+
bool flag = arr[m];
6+
7+
while (n != 0)
8+
{
9+
int tmp = n%10;
10+
if (flag)
11+
sum += tmp;
12+
else
13+
sum -= tmp;
14+
flag = !flag;
15+
16+
n /= 10;
17+
}
18+
19+
return sum;
20+
}

src/2549.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
int distinctIntegers(int n) {
2+
if (n < 3)
3+
return 1;
4+
else
5+
return n-1;
6+
}

src/2553.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
vector<int> separateDigits(vector<int>& nums) {
2+
list<int> tmplist;
3+
int len = nums.size();
4+
for (int i = len-1; i >= 0; --i)
5+
{
6+
while (nums[i] != 0)
7+
{
8+
tmplist.push_front(nums[i]%10);
9+
nums[i] /= 10;
10+
}
11+
}
12+
13+
return vector<int>(tmplist.begin(), tmplist.end());
14+
}

src/2558.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
long long pickGifts(vector<int>& gifts, int k) {
2+
int len = gifts.size();
3+
long long sum = 0;
4+
for (int i = 0; i < len; ++i)
5+
sum += gifts[i];
6+
7+
for (int i = 0; i < k; ++i)
8+
{
9+
int index = 0;
10+
int maxval = 0;
11+
for (int j = 0; j < len; ++j)
12+
{
13+
if (gifts[j] > maxval)
14+
{
15+
index = j;
16+
maxval = gifts[j];
17+
}
18+
}
19+
20+
int r = sqrt(maxval);
21+
if (r == maxval)
22+
break;
23+
sum -= gifts[index]-r;
24+
gifts[index] = r;
25+
}
26+
27+
return sum;
28+
}

0 commit comments

Comments
 (0)