Skip to content

Commit 1d092ea

Browse files
committed
6 problems solved.
1 parent f3a1249 commit 1d092ea

File tree

6 files changed

+171
-0
lines changed

6 files changed

+171
-0
lines changed

src/1624.cpp

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

src/1685.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
vector<int> getSumAbsoluteDifferences(vector<int>& nums) {
2+
int len = nums.size();
3+
vector<int> accusum(len, 0);
4+
int sum = 0;
5+
for (int i = 0; i < len; ++i)
6+
{
7+
sum += nums[i];
8+
accusum[i] = sum;
9+
}
10+
11+
vector<int> res(len, 0);
12+
for (int i = 0; i < len; ++i)
13+
{
14+
res[i] = accusum[len-1]-accusum[i]-(len-1-i)*nums[i]+(i+1)*nums[i]-accusum[i];
15+
}
16+
17+
return res;
18+
}

src/1796.cpp

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

src/1805.cpp

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
int numDifferentIntegers(string word) {
2+
int len = word.size();
3+
for (int i = 0; i < len; ++i)
4+
{
5+
if (!isdigit(word[i]))
6+
word[i] = ' ';
7+
}
8+
9+
int i = 0;
10+
int lh = -1, rh = -1;
11+
set<string> st;
12+
bool flag = false;
13+
14+
while (i < len)
15+
{
16+
if (word[i] == ' ')
17+
++i;
18+
else
19+
{
20+
lh = i;
21+
while (i < len && word[i] == '0')
22+
++i;
23+
if (i == len)
24+
{
25+
flag = true;
26+
break;
27+
}
28+
else if (word[i] == ' ')
29+
flag = true;
30+
else
31+
{
32+
lh = i;
33+
while (i < len && word[i] != ' ')
34+
++i;
35+
st.insert(word.substr(lh, i-lh));
36+
if (i == len)
37+
break;
38+
}
39+
}
40+
}
41+
42+
if (flag)
43+
st.insert("0");
44+
45+
return st.size();
46+
}

src/1828.cpp

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

src/1859.cpp

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

0 commit comments

Comments
 (0)