Skip to content

Commit b73b12d

Browse files
committed
6 problems solved.
1 parent 3fffff6 commit b73b12d

File tree

6 files changed

+126
-0
lines changed

6 files changed

+126
-0
lines changed

src/1030.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
vector<vector<int>> allCellsDistOrder(int R, int C, int r0, int c0) {
2+
int total = R*C;
3+
vector<vector<int>> res(total, vector<int>(2, 0));
4+
struct Elem
5+
{
6+
int r;
7+
int c;
8+
int dist;
9+
Elem(int _r = 0, int _c = 0):r(_r),c(_c){}
10+
};
11+
12+
vector<Elem> vec(total);
13+
for (int i = 0; i < R; ++i)
14+
{
15+
for (int j = 0; j < C; ++j)
16+
{
17+
vec[i*C+j].r = i;
18+
vec[i*C+j].c = j;
19+
vec[i*C+j].dist = abs(i-r0) + abs(j-c0);
20+
}
21+
}
22+
23+
auto cmp = [](const Elem& a, const Elem& b){
24+
return a.dist < b.dist;
25+
};
26+
sort(vec.begin(), vec.end(), cmp);
27+
28+
for (int i = 0; i < total; ++i)
29+
{
30+
res[i][0] = vec[i].r;
31+
res[i][1] = vec[i].c;
32+
}
33+
34+
return res;
35+
}

src/1217.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
int minCostToMoveChips(vector<int>& chips) {
2+
int len = chips.size();
3+
if (len == 1)
4+
return 0;
5+
6+
int minval = 100;
7+
for (int i = 0; i <len; ++i)
8+
{
9+
int t = 0;
10+
for (int j = 0; j < len; ++j)
11+
{
12+
if (j != i)
13+
{
14+
t += abs(chips[i]-chips[j])%2;
15+
}
16+
}
17+
if (t < minval)
18+
minval = t;
19+
}
20+
21+
return minval;
22+
}

src/1351.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
int countNegatives(vector<vector<int>>& grid) {
2+
int row = grid.size();
3+
int col = grid[0].size();
4+
int ct = 0;
5+
for (int i = 0; i < row; ++i)
6+
{
7+
ct += lower_bound(grid[i].rbegin(), grid[i].rend(), 0) - grid[i].rbegin();
8+
}
9+
10+
return ct;
11+
}

src/589.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
vector<int> preorder(Node* root) {
2+
if (root == nullptr)
3+
return {};
4+
vector<int> res;
5+
search(root, res);
6+
7+
return res;
8+
}
9+
10+
void search(Node* node, vector<int>& res)
11+
{
12+
res.push_back(node->val);
13+
int len = (node->children).size();
14+
if (len != 0)
15+
{
16+
for (int i = 0; i < len; ++i)
17+
{
18+
search((node->children)[i], res);
19+
}
20+
}
21+
}

src/590.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
vector<int> postorder(Node* root) {
2+
if (root == nullptr)
3+
return {};
4+
5+
vector<int> res;
6+
search(root, res);
7+
8+
return res;
9+
}
10+
11+
void search(Node* node, vector<int>& res)
12+
{
13+
int len = (node->children).size();
14+
if (len != 0)
15+
{
16+
for (int i = 0; i < len; ++i)
17+
{
18+
search((node->children)[i], res);
19+
}
20+
}
21+
res.push_back(node->val);
22+
}

src/976.cpp

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

0 commit comments

Comments
 (0)