Skip to content

Commit 39eaa7f

Browse files
author
lucifer
committed
2 parents 2a7de26 + ddfcecc commit 39eaa7f

4 files changed

+184
-3
lines changed

problems/101.symmetric-tree.md

+77
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,84 @@ return True
9898
> 其实更像本题一点的话应该是从中间分别向两边扩展 😂
9999
100100
## 代码
101+
代码支持:C++, Java, Python3
102+
103+
C++ Code:
104+
```c++
105+
/**
106+
* Definition for a binary tree node.
107+
* struct TreeNode {
108+
* int val;
109+
* TreeNode *left;
110+
* TreeNode *right;
111+
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
112+
* };
113+
*/
114+
class Solution {
115+
public:
116+
bool isSymmetric(TreeNode* root) {
117+
return root==NULL?true:recur(root->left, root->right);
118+
}
119+
120+
bool recur(TreeNode* l, TreeNode* r)
121+
{
122+
if(l == NULL && r==NULL)
123+
{
124+
return true;
125+
}
126+
// 只存在一个子节点 或者左右不相等
127+
if(l==NULL || r==NULL || l->val != r->val)
128+
{
129+
return false;
130+
}
131+
132+
return recur(l->left, r->right) && recur(l->right, r->left);
133+
}
134+
};
135+
```
136+
137+
138+
Java Code:
139+
```java
140+
/**
141+
* Definition for a binary tree node.
142+
* public class TreeNode {
143+
* int val;
144+
* TreeNode left;
145+
* TreeNode right;
146+
* TreeNode(int x) { val = x; }
147+
* }
148+
*/
149+
class Solution {
150+
public boolean isSymmetric(TreeNode root) {
151+
if(root == null)
152+
{
153+
return true;
154+
}
155+
else{
156+
return recur(root.left, root.right);
157+
}
158+
// return root == null ? true : recur(root.left, root.right);
159+
}
160+
161+
public boolean recur(TreeNode l, TreeNode r)
162+
{
163+
if(l == null && r==null)
164+
{
165+
return true;
166+
}
167+
// 只存在一个子节点 或者左右不相等
168+
if(l==null || r==null || l.val != r.val)
169+
{
170+
return false;
171+
}
172+
173+
return recur(l.left, r.right) && recur(l.right, r.left);
174+
}
175+
}
176+
```
101177

178+
Python3 Code:
102179
```py
103180

104181
class Solution:

problems/104.maximum-depth-of-binary-tree.md

+50-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ var maxDepth = function (root) {
6464

6565
## 代码
6666

67-
- 语言支持:JS,C++,Python
67+
- 语言支持:JS,C++,Java,Python
6868

6969
JavaScript Code:
7070

@@ -149,6 +149,55 @@ public:
149149
};
150150
```
151151
152+
Java Code:
153+
154+
```java
155+
/**
156+
* Definition for a binary tree node.
157+
* public class TreeNode {
158+
* int val;
159+
* TreeNode left;
160+
* TreeNode right;
161+
* TreeNode(int x) { val = x; }
162+
* }
163+
*/
164+
class Solution {
165+
public int maxDepth(TreeNode root) {
166+
if(root == null)
167+
{
168+
return 0;
169+
}
170+
// 队列
171+
Queue<TreeNode> queue = new LinkedList<TreeNode>();
172+
queue.offer(root);
173+
int res = 0;
174+
// 按层扩展
175+
while(!queue.isEmpty())
176+
{
177+
// 拿出该层所有节点,并压入子节点
178+
int size = queue.size();
179+
while(size > 0)
180+
{
181+
TreeNode node = queue.poll();
182+
183+
if(node.left != null)
184+
{
185+
queue.offer(node.left);
186+
}
187+
if(node.right != null)
188+
{
189+
queue.offer(node.right);
190+
}
191+
size-=1;
192+
}
193+
// 统计层数
194+
res +=1;
195+
}
196+
return res;
197+
}
198+
}
199+
```
200+
152201
Python Code:
153202

154203
```python

problems/172.factorial-trailing-zeroes.md

+36-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ https://leetcode-cn.com/problems/factorial-trailing-zeroes/
5757

5858
## 代码
5959

60-
* 语言支持:JS,Python
60+
* 语言支持:JS,Python,C++, Java
6161

6262
Javascript Code:
6363

@@ -106,6 +106,41 @@ class Solution:
106106
return n // 5 + self.trailingZeroes(n // 5)
107107
```
108108

109+
C++ Code:
110+
111+
```c++
112+
class Solution {
113+
public:
114+
int trailingZeroes(int n) {
115+
int res = 0;
116+
while(n >= 5)
117+
{
118+
n/=5;
119+
res += n;
120+
}
121+
return res;
122+
}
123+
};
124+
```
125+
126+
127+
Java Code:
128+
129+
```js
130+
class Solution {
131+
public int trailingZeroes(int n) {
132+
int res = 0;
133+
while(n >= 5)
134+
{
135+
n/=5;
136+
res += n;
137+
}
138+
return res;
139+
}
140+
}
141+
```
142+
143+
109144
**复杂度分析**
110145
- 时间复杂度:$O(logN)$
111146
- 空间复杂度:$O(1)$

problems/219.contains-duplicate-ii.md

+21-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ https://leetcode-cn.com/problems/contains-duplicate-ii/
5151

5252
## 代码
5353

54-
* 语言支持:JS,Python,C++
54+
* 语言支持:JS,Python,C++, Java
5555

5656
Javascript Code:
5757

@@ -86,6 +86,7 @@ class Solution:
8686
d[num] = index
8787
return False
8888
```
89+
8990
C++ Code:
9091
```C++
9192
class Solution {
@@ -106,6 +107,25 @@ public:
106107
};
107108
```
108109
110+
Java Code:
111+
112+
```java
113+
class Solution {
114+
public boolean containsNearbyDuplicate(int[] nums, int k) {
115+
Map<Integer, Integer> map = new HashMap<>();
116+
for(int i=0;i<nums.length;i++)
117+
{
118+
if(map.get(nums[i]) != null && (i-map.get(nums[i])) <= k)
119+
{
120+
return true;
121+
}
122+
map.put(nums[i], i);
123+
}
124+
return false;
125+
}
126+
}
127+
```
128+
109129
**复杂度分析**
110130
- 时间复杂度:$O(N)$
111131
- 空间复杂度:$O(N)$

0 commit comments

Comments
 (0)