Skip to content

Commit 4119a41

Browse files
committed
7 problems solved.
1 parent 48b3bda commit 4119a41

File tree

7 files changed

+148
-0
lines changed

7 files changed

+148
-0
lines changed

src/700.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
TreeNode* searchBST(TreeNode* root, int val) {
2+
if (root == nullptr)
3+
return root;
4+
5+
TreeNode* node = root;
6+
while (node != nullptr)
7+
{
8+
if (node->val == val)
9+
return node;
10+
else if (node->val < val)
11+
node = node->right;
12+
else
13+
node = node->left;
14+
}
15+
16+
return nullptr;
17+
}

src/709.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
string toLowerCase(string str) {
2+
transform(str.begin(), str.end(), str.begin(), ::tolower);
3+
4+
return str;
5+
}

src/841.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
bool canVisitAllRooms(vector<vector<int>>& rooms) {
2+
int N = rooms.size();
3+
if (N == 1)
4+
return true;
5+
6+
int* number = new int[N];
7+
memset(number, 0, N*sizeof(int));
8+
number[0] = 1;
9+
int ct = 1;
10+
11+
deque<int> dq(rooms[0].begin(), rooms[0].end());
12+
13+
int len = dq.size();
14+
while (len != 0)
15+
{
16+
for (int i = 0; i < len; ++i)
17+
{
18+
if (number[dq[i]] == 0)
19+
{
20+
dq.insert(dq.end(), rooms[dq[i]].begin(), rooms[dq[i]].end());
21+
number[dq[i]] = 1;
22+
++ct;
23+
}
24+
}
25+
dq.erase(dq.begin(), dq.begin() + len);
26+
len = dq.size();
27+
}
28+
delete []number;
29+
return ct == N;
30+
}

src/867.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
vector<vector<int>> transpose(vector<vector<int>>& A) {
2+
int row = A.size();
3+
if (row == 0)
4+
return A;
5+
int col = A[0].size();
6+
7+
vector<vector<int>> res(col, vector<int>(row, 0));
8+
for (int i = 0; i < row; ++i)
9+
{
10+
for (int j = 0; j < col; ++j)
11+
{
12+
res[j][i] = A[i][j];
13+
}
14+
}
15+
16+
return res;
17+
}

src/872.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
bool leafSimilar(TreeNode* root1, TreeNode* root2) {
2+
if (root1 == nullptr && root2 == nullptr)
3+
return true;
4+
5+
if (root1 == nullptr || root2 == nullptr)
6+
return false;
7+
8+
vector<int> leaf1, leaf2;
9+
getLeaf(root1, leaf1);
10+
getLeaf(root2, leaf2);
11+
12+
int len1 = leaf1.size();
13+
int len2 = leaf2.size();
14+
if (len1 != len2)
15+
return false;
16+
17+
for (int i = 0; i < len1; ++i)
18+
{
19+
if (leaf1[i] != leaf2[i])
20+
return false;
21+
}
22+
23+
return true;
24+
}
25+
26+
void getLeaf(TreeNode* node, vector<int>& vec)
27+
{
28+
if (node->left == nullptr && node->right == nullptr)
29+
vec.push_back(node->val);
30+
else
31+
{
32+
if (node->left != nullptr)
33+
getLeaf(node->left, vec);
34+
if (node->right != nullptr)
35+
getLeaf(node->right, vec);
36+
}
37+
}

src/876.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
ListNode* middleNode(ListNode* head) {
2+
if (head == nullptr || head->next == nullptr)
3+
return head;
4+
5+
int len = 0;
6+
ListNode* node = head;
7+
while (node != nullptr)
8+
{
9+
node = node->next;
10+
++len;
11+
}
12+
int pos = len/2;
13+
int i = 0;
14+
node = head;
15+
while (i != pos)
16+
{
17+
node = node->next;
18+
++i;
19+
}
20+
21+
return node;
22+
}

src/896.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
bool isMonotonic(vector<int>& A) {
2+
int len = A.size();
3+
if (len == 1)
4+
return true;
5+
6+
int pos = 1;
7+
while (A[pos] == A[0])
8+
++pos;
9+
if (pos == len)
10+
return true;
11+
12+
bool flag = A[0] <= A[pos] ? true : false;
13+
for (int i = pos; i < len-1; ++i)
14+
{
15+
if ((flag && A[i] > A[i+1]) || (!flag && A[i] < A[i+1]))
16+
return false;
17+
}
18+
19+
return true;
20+
}

0 commit comments

Comments
 (0)