Skip to content

Commit 3768553

Browse files
authored
feat: update solutions to lcof problems: No.26,27,30 (doocs#2871)
1 parent 3c5c2d6 commit 3768553

File tree

5 files changed

+36
-382
lines changed
  • lcof
    • ้ข่ฏ•้ข˜26. ๆ ‘็š„ๅญ็ป“ๆž„
    • ้ข่ฏ•้ข˜27. ไบŒๅ‰ๆ ‘็š„้•œๅƒ
    • ้ข่ฏ•้ข˜30. ๅŒ…ๅซminๅ‡ฝๆ•ฐ็š„ๆ ˆ

5 files changed

+36
-382
lines changed

โ€Žlcof/้ข่ฏ•้ข˜26. ๆ ‘็š„ๅญ็ป“ๆž„/README.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,19 @@ edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9
5252

5353
<!-- solution:start -->
5454

55-
### ๆ–นๆณ•ไธ€
55+
### ๆ–นๆณ•ไธ€๏ผš้€’ๅฝ’
56+
57+
ๆˆ‘ไปฌ่ฎพ่ฎกไธ€ไธชๅ‡ฝๆ•ฐ $\text{dfs}(A, B)$๏ผŒ็”จไบŽๅˆคๆ–ญๆ ‘ A ไธญไปฅ่Š‚็‚น A ไธบๆ น่Š‚็‚น็š„ๅญๆ ‘ๆ˜ฏๅฆๅŒ…ๅซๆ ‘ Bใ€‚
58+
59+
ๅ‡ฝๆ•ฐ $\text{dfs}(A, B)$ ็š„ๆ‰ง่กŒๆญฅ้ชคๅฆ‚ไธ‹๏ผš
60+
61+
1. ๅฆ‚ๆžœๆ ‘ B ไธบ็ฉบ๏ผŒๅˆ™ๆ ‘ B ๆ˜ฏๆ ‘ A ็š„ๅญ็ป“ๆž„๏ผŒ่ฟ”ๅ›ž `true`๏ผ›
62+
2. ๅฆ‚ๆžœๆ ‘ A ไธบ็ฉบ๏ผŒๆˆ–่€…ๆ ‘ A ็š„ๆ น่Š‚็‚น็š„ๅ€ผไธ็ญ‰ไบŽๆ ‘ B ็š„ๆ น่Š‚็‚น็š„ๅ€ผ๏ผŒๅˆ™ๆ ‘ B ไธๆ˜ฏๆ ‘ A ็š„ๅญ็ป“ๆž„๏ผŒ่ฟ”ๅ›ž `false`๏ผ›
63+
3. ๅˆคๆ–ญๆ ‘ A ็š„ๅทฆๅญๆ ‘ๆ˜ฏๅฆๅŒ…ๅซๆ ‘ B๏ผŒๅณ่ฐƒ็”จ $\text{dfs}(A.left, B)$๏ผŒๅนถไธ”ๅˆคๆ–ญๆ ‘ A ็š„ๅณๅญๆ ‘ๆ˜ฏๅฆๅŒ…ๅซๆ ‘ B๏ผŒๅณ่ฐƒ็”จ $\text{dfs}(A.right, B)$ใ€‚ๅฆ‚ๆžœๅ…ถไธญๆœ‰ไธ€ไธชๅ‡ฝๆ•ฐ่ฟ”ๅ›ž `false`๏ผŒๅˆ™ๆ ‘ B ไธๆ˜ฏๆ ‘ A ็š„ๅญ็ป“ๆž„๏ผŒ่ฟ”ๅ›ž `false`๏ผ›ๅฆๅˆ™๏ผŒ่ฟ”ๅ›ž `true`ใ€‚
64+
65+
ๅœจๅ‡ฝๆ•ฐ `isSubStructure` ไธญ๏ผŒๆˆ‘ไปฌ้ฆ–ๅ…ˆๅˆคๆ–ญๆ ‘ A ๅ’Œๆ ‘ B ๆ˜ฏๅฆไธบ็ฉบ๏ผŒๅฆ‚ๆžœๅ…ถไธญๆœ‰ไธ€ไธชไธบ็ฉบ๏ผŒๅˆ™ๆ ‘ B ไธๆ˜ฏๆ ‘ A ็š„ๅญ็ป“ๆž„๏ผŒ่ฟ”ๅ›ž `false`ใ€‚็„ถๅŽ๏ผŒๆˆ‘ไปฌ่ฐƒ็”จ $\text{dfs}(A, B)$๏ผŒๅˆคๆ–ญๆ ‘ A ๆ˜ฏๅฆๅŒ…ๅซๆ ‘ Bใ€‚ๅฆ‚ๆžœๆ˜ฏ๏ผŒๅˆ™่ฟ”ๅ›ž `true`๏ผ›ๅฆๅˆ™๏ผŒ้€’ๅฝ’ๅˆคๆ–ญๆ ‘ A ็š„ๅทฆๅญๆ ‘ๆ˜ฏๅฆๅŒ…ๅซๆ ‘ B๏ผŒไปฅๅŠๆ ‘ A ็š„ๅณๅญๆ ‘ๆ˜ฏๅฆๅŒ…ๅซๆ ‘ Bใ€‚ๅฆ‚ๆžœๅ…ถไธญๆœ‰ไธ€ไธช่ฟ”ๅ›ž `true`๏ผŒๅˆ™ๆ ‘ B ๆ˜ฏๆ ‘ A ็š„ๅญ็ป“ๆž„๏ผŒ่ฟ”ๅ›ž `true`๏ผ›ๅฆๅˆ™๏ผŒ่ฟ”ๅ›ž `false`ใ€‚
66+
67+
ๆ—ถ้—ดๅคๆ‚ๅบฆ $O(n \times m)$๏ผŒ็ฉบ้—ดๅคๆ‚ๅบฆ $O(n)$ใ€‚ๅ…ถไธญ $n$ ๅ’Œ $m$ ๅˆ†ๅˆซๆ˜ฏๆ ‘ A ๅ’Œๆ ‘ B ็š„่Š‚็‚นไธชๆ•ฐใ€‚
5668

5769
<!-- tabs:start -->
5870

@@ -130,13 +142,19 @@ class Solution {
130142
class Solution {
131143
public:
132144
bool isSubStructure(TreeNode* A, TreeNode* B) {
133-
if (!A || !B) return 0;
145+
if (!A || !B) {
146+
return false;
147+
}
134148
return dfs(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B);
135149
}
136150

137151
bool dfs(TreeNode* A, TreeNode* B) {
138-
if (!B) return 1;
139-
if (!A || A->val != B->val) return 0;
152+
if (!B) {
153+
return true;
154+
}
155+
if (!A || A->val != B->val) {
156+
return false;
157+
}
140158
return dfs(A->left, B->left) && dfs(A->right, B->right);
141159
}
142160
};

โ€Žlcof/้ข่ฏ•้ข˜26. ๆ ‘็š„ๅญ็ป“ๆž„/Solution.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,19 @@
1010
class Solution {
1111
public:
1212
bool isSubStructure(TreeNode* A, TreeNode* B) {
13-
if (!A || !B) return 0;
13+
if (!A || !B) {
14+
return false;
15+
}
1416
return dfs(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B);
1517
}
1618

1719
bool dfs(TreeNode* A, TreeNode* B) {
18-
if (!B) return 1;
19-
if (!A || A->val != B->val) return 0;
20+
if (!B) {
21+
return true;
22+
}
23+
if (!A || A->val != B->val) {
24+
return false;
25+
}
2026
return dfs(A->left, B->left) && dfs(A->right, B->right);
2127
}
2228
};

โ€Žlcof/้ข่ฏ•้ข˜27. ไบŒๅ‰ๆ ‘็š„้•œๅƒ/README.md

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -285,36 +285,4 @@ public class Solution {
285285

286286
<!-- solution:end -->
287287

288-
<!-- solution:start-->
289-
290-
### ๆ–นๆณ•ไบŒ
291-
292-
<!-- tabs:start -->
293-
294-
#### Python3
295-
296-
```python
297-
# Definition for a binary tree node.
298-
# class TreeNode:
299-
# def __init__(self, x):
300-
# self.val = x
301-
# self.left = None
302-
# self.right = None
303-
304-
305-
class Solution:
306-
def mirrorTree(self, root: TreeNode) -> TreeNode:
307-
if root is None:
308-
return root
309-
left = self.mirrorTree(root.left)
310-
right = self.mirrorTree(root.right)
311-
root.left = right
312-
root.right = left
313-
return root
314-
```
315-
316-
<!-- tabs:end -->
317-
318-
<!-- solution:end -->
319-
320288
<!-- problem:end -->

โ€Žlcof/้ข่ฏ•้ข˜27. ไบŒๅ‰ๆ ‘็š„้•œๅƒ/Solution2.py

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
ย (0)