Skip to content

Commit fb3318f

Browse files
committed
6 problems solved.
1 parent d64563e commit fb3318f

File tree

6 files changed

+155
-0
lines changed

6 files changed

+155
-0
lines changed

src/2336.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
class SmallestInfiniteSet {
2+
public:
3+
SmallestInfiniteSet() {
4+
for(int i = 0; i < 1001; ++i)
5+
arr[i] = 1;
6+
curSmallest = 1;
7+
}
8+
9+
int popSmallest() {
10+
int rt = curSmallest;
11+
arr[curSmallest] = 0;
12+
for(int i = rt+1; i <= 1000; ++i)
13+
{
14+
if(arr[i] == 1)
15+
{
16+
curSmallest = i;
17+
break;
18+
}
19+
}
20+
21+
return rt;
22+
}
23+
24+
void addBack(int num) {
25+
if(num <= 1000 && arr[num] == 0)
26+
{
27+
arr[num] = 1;
28+
if(num < curSmallest)
29+
curSmallest = num;
30+
}
31+
}
32+
private:
33+
int arr[1001];
34+
int curSmallest;
35+
};

src/2373.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
vector<vector<int>> largestLocal(vector<vector<int>>& grid) {
2+
int row = grid.size();
3+
int n = row-2;
4+
vector<vector<int>> res(n, vector<int>(n, 0));
5+
6+
for (int i = 1; i < row-1; ++i)
7+
{
8+
for (int j = 1; j < row-1; ++j)
9+
{
10+
int maxvalue = 0;
11+
for (int p = i-1; p <= i+1; ++p)
12+
{
13+
for (int q = j-1; q <= j+1; ++q)
14+
{
15+
if (grid[p][q] > maxvalue)
16+
maxvalue = grid[p][q];
17+
}
18+
}
19+
res[i-1][j-1] = maxvalue;
20+
}
21+
}
22+
23+
return res;
24+
}

src/2390.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
string removeStars(string s) {
2+
int len = s.size();
3+
string res(len, ' ');
4+
5+
int i = 0, j = 0;
6+
while (i < len)
7+
{
8+
if(s[i] != '*')
9+
{
10+
res[j++] = s[i];
11+
}
12+
else
13+
{
14+
if(j > 0)
15+
{
16+
--j;
17+
}
18+
}
19+
20+
++i;
21+
}
22+
23+
res.resize(j);
24+
25+
return res;
26+
}

src/2399.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
bool checkDistances(string s, vector<int>& distance) {
2+
int len = s.size();
3+
vector<int> indexarr(26, -1);
4+
for (int i = 0; i < len; ++i)
5+
{
6+
if (indexarr[s[i]-'a'] == -1)
7+
{
8+
indexarr[s[i]-'a'] = i;
9+
}
10+
else
11+
{
12+
if ((abs(indexarr[s[i]-'a']-i)-1) != distance[s[i]-'a'])
13+
return false;
14+
}
15+
}
16+
17+
return true;
18+
}

src/2404.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
int mostFrequentEven(vector<int>& nums) {
2+
int len = nums.size();
3+
map<int, int> mp;
4+
5+
for (int i = 0; i < len; ++i)
6+
{
7+
if (nums[i]%2 == 0)
8+
mp[nums[i]]++;
9+
}
10+
11+
int maxnum = 0, val = 0;
12+
for (auto iter = mp.begin(); iter != mp.end(); ++iter)
13+
{
14+
if (iter->second > maxnum)
15+
{
16+
maxnum = iter->second;
17+
val = iter->first;
18+
}
19+
else if (iter->second == maxnum && iter->first < val)
20+
{
21+
val = iter->first;
22+
}
23+
}
24+
25+
if (maxnum == 0)
26+
return -1;
27+
else
28+
return val;
29+
}

src/2405.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
int partitionString(string s) {
2+
int len = s.size();
3+
int i = 0;
4+
int ct = 0;
5+
6+
while (i < len)
7+
{
8+
vector<int> flag(26, 0);
9+
++ct;
10+
while (i < len)
11+
{
12+
if (flag[s[i]-'a'] == 0)
13+
{
14+
flag[s[i]-'a'] = 1;
15+
++i;
16+
}
17+
else
18+
break;
19+
}
20+
}
21+
22+
return ct;
23+
}

0 commit comments

Comments
 (0)