Skip to content

Commit 105d7d8

Browse files
committed
5 problems solved.
1 parent 7954d52 commit 105d7d8

File tree

5 files changed

+128
-0
lines changed

5 files changed

+128
-0
lines changed

src/1051.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
int heightChecker(vector<int>& heights) {
2+
int len = heights.size();
3+
vector<int> ori(heights);
4+
sort(heights.begin(), heights.end());
5+
6+
int ct = 0;
7+
for (int i = 0; i < len; ++i)
8+
{
9+
if (ori[i] != heights[i])
10+
++ct;
11+
}
12+
13+
return ct;
14+
}

src/2149.cpp

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

src/2239.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
int findClosestNumber(vector<int>& nums) {
2+
int mindist = 1e5;
3+
int val = -1e5;
4+
int len = nums.size();
5+
for (int i = 0; i < len; ++i)
6+
{
7+
int tmp = abs(nums[i]);
8+
if (tmp < mindist)
9+
{
10+
mindist = tmp;
11+
val = nums[i];
12+
}
13+
else if (tmp == mindist)
14+
{
15+
if (nums[i] > val)
16+
val = nums[i];
17+
}
18+
}
19+
20+
return val;
21+
}

src/2243.cpp

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
string digitSum(string s, int k) {
2+
int len = s.size();
3+
while (len > k)
4+
{
5+
int n = len/k;
6+
int j = 0, sum = 0, m = 0;
7+
for (int i = 0; i < n; ++i)
8+
{
9+
sum = 0;
10+
for (j = i*k; j < (i+1)*k; ++j)
11+
{
12+
sum += s[j]-'0';
13+
}
14+
15+
int lim = sum > 0 ? log10(sum) : 0;
16+
int idx = m+lim;
17+
int tmp = idx;
18+
while (lim >= 0)
19+
{
20+
s[idx--] = sum%10+'0';
21+
sum /= 10;
22+
--lim;
23+
}
24+
m = tmp+1;
25+
}
26+
27+
if (j < len)
28+
{
29+
sum = 0;
30+
for (int i = j; i < len; ++i)
31+
{
32+
sum += s[i]-'0';
33+
}
34+
int lim = sum > 0 ? log10(sum) : 0;
35+
int idx = m+lim;
36+
int tmp = idx;
37+
while (lim >= 0)
38+
{
39+
s[idx--] = sum%10+'0';
40+
sum /= 10;
41+
--lim;
42+
}
43+
m = tmp+1;
44+
len = m;
45+
}
46+
else
47+
len = m;
48+
}
49+
50+
return s.substr(0,len);
51+
}

src/883.cpp

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

0 commit comments

Comments
 (0)