提交 aec72b11 编写于 作者: ToTensor's avatar ToTensor

优化无法通过压力测试的习题

上级 053b3027
...@@ -29,18 +29,21 @@ ...@@ -29,18 +29,21 @@
```java ```java
class Solution { class Solution {
public boolean containsDuplicate(int[] nums) { public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
Map<Integer, Integer> map = new HashMap<Integer, Integer>(); if (k < 1 || t < 0)
return false;
for (int x : nums) { SortedSet<Long> binTree = new TreeSet<>();
if (map.containsKey(x)) for (int i = 0; i < nums.length; i++) {
SortedSet<Long> son = binTree.subSet((long) nums[i] - t, (long) nums[i] + t + 1);
if (!son.isEmpty())
return true; return true;
map.put(x, x); if (i >= k)
binTree.remove((long) nums[i - k]);
binTree.add((long) nums[i]);
} }
return false; return false;
} }
} }
``` ```
## 答案 ## 答案
......
...@@ -80,7 +80,24 @@ class Solution: ...@@ -80,7 +80,24 @@ class Solution:
## 答案 ## 答案
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def __init__(self):
self.ans = []
def preorderTraversal(self, root: TreeNode) -> List[int]:
if not root:
return []
self.ans.append(root.val)
self.preorderTraversal(root.left)
self.preorderTraversal(root.right)
return self.ans
``` ```
## 选项 ## 选项
...@@ -88,17 +105,68 @@ class Solution: ...@@ -88,17 +105,68 @@ class Solution:
### A ### A
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def __init__(self):
self.ans = []
def preorderTraversal(self, root: TreeNode) -> List[int]:
if not root:
return []
self.preorderTraversal(root.left)
self.ans.append(root.val)
self.preorderTraversal(root.right)
return self.ans
``` ```
### B ### B
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def __init__(self):
self.ans = []
def preorderTraversal(self, root: TreeNode) -> List[int]:
if not root:
return []
self.preorderTraversal(root.left)
self.preorderTraversal(root.right)
self.ans.append(root.val)
return self.ans
``` ```
### C ### C
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def __init__(self):
self.ans = []
def preorderTraversal(self, root: TreeNode) -> List[int]:
if not root:
return []
self.preorderTraversal(root.right)
self.ans.append(root.val)
self.preorderTraversal(root.left)
return self.ans
``` ```
\ No newline at end of file
...@@ -56,7 +56,28 @@ class Solution(object): ...@@ -56,7 +56,28 @@ class Solution(object):
## 答案 ## 答案
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return None
root.left, root.right = root.right, root.left
self.invertTree(root.left)
self.invertTree(root.right)
return root
``` ```
## 选项 ## 选项
...@@ -64,17 +85,77 @@ class Solution(object): ...@@ -64,17 +85,77 @@ class Solution(object):
### A ### A
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return None
self.invertTree(root.left)
self.invertTree(root.right)
root.left, root.right = root.right, root.left
return root
``` ```
### B ### B
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return None
self.invertTree(root.left)
root.left, root.right = root.right, root.left
self.invertTree(root.right)
return root
``` ```
### C ### C
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def invertTree(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return None
self.invertTree(root.right)
root.left, root.right = root.right, root.left
self.invertTree(root.left)
return root
``` ```
\ No newline at end of file
...@@ -72,7 +72,32 @@ class Solution: ...@@ -72,7 +72,32 @@ class Solution:
## 答案 ## 答案
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def rightSideView(self, root: TreeNode) -> List[int]:
if not root:
return []
res = []
curnode = [root]
nexnode = []
res.append(curnode[0].val)
while curnode:
for s in curnode:
if s.right:
nexnode.append(s.right)
if s.left:
nexnode.append(s.left)
if nexnode:
res.append(nexnode[0].val)
curnode = nexnode
nexnode = []
return res
``` ```
## 选项 ## 选项
...@@ -80,17 +105,92 @@ class Solution: ...@@ -80,17 +105,92 @@ class Solution:
### A ### A
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def rightSideView(self, root: TreeNode) -> List[int]:
if not root:
return []
res = []
curnode = [root]
nexnode = []
res.append(curnode[0].val)
while curnode:
for s in curnode:
if nexnode:
res.append(nexnode[0].val)
if s.right:
nexnode.append(s.right)
if s.left:
nexnode.append(s.left)
curnode = nexnode
nexnode = []
return res
``` ```
### B ### B
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def rightSideView(self, root: TreeNode) -> List[int]:
if not root:
return []
res = []
curnode = [root]
nexnode = []
res.append(curnode[0].val)
while curnode:
for s in curnode:
if s.right:
nexnode.append(s.right)
if s.left:
nexnode.append(s.left)
curnode = nexnode
nexnode = []
if nexnode:
res.append(nexnode[0].val)
return res
``` ```
### C ### C
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def rightSideView(self, root: TreeNode) -> List[int]:
if not root:
return []
res = []
curnode = [root]
nexnode = []
res.append(curnode[0].val)
while curnode:
for s in curnode:
if s.right:
nexnode.append(s.right)
if s.left:
nexnode.append(s.left)
if nexnode:
res.append(nexnode[0].val)
curnode = nexnode
nexnode = []
return res
``` ```
\ No newline at end of file
...@@ -5,17 +5,17 @@ ...@@ -5,17 +5,17 @@
## template ## template
```python ```python
class Solution(object): class Solution:
def subsets(self, nums): def subsets(self, nums):
nums.sort() allset = 2 ** len(nums)
res = [[]] result = []
for index in range(len(nums)): for i in range(allset):
size = len(res) item = []
for j in range(size): for j in range(len(nums)):
curr = list(res[j]) if i & (2 ** j):
curr.append(nums[index]) item.append(nums[j])
res.append(curr) result.append(item)
return res return result
if __name__ == "__main__": if __name__ == "__main__":
s = Solution() s = Solution()
print (s.subsets([1,2,3])) print (s.subsets([1,2,3]))
......
...@@ -63,7 +63,34 @@ class Solution(object): ...@@ -63,7 +63,34 @@ class Solution(object):
## 答案 ## 答案
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if not root:
return []
queue, res = [root], []
while queue:
size = len(queue)
temp = []
for i in range(size):
data = queue.pop(0)
temp.append(data.val)
if data.left:
queue.append(data.left)
if data.right:
queue.append(data.right)
res.append(temp)
return res
``` ```
## 选项 ## 选项
...@@ -71,17 +98,96 @@ class Solution(object): ...@@ -71,17 +98,96 @@ class Solution(object):
### A ### A
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if not root:
return []
queue, res = [root], []
while queue:
size = len(queue)
temp = []
for i in range(size):
data = queue.pop(0)
temp.append(data.val)
queue.append(data.left)
queue.append(data.right)
res.append(temp)
return res
``` ```
### B ### B
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if not root:
return []
queue, res = [root], []
while queue:
size = len(queue)
temp = []
for i in range(size):
data = queue.pop(0)
temp.append(data.val)
if data.left:
queue.append(data.left)
if data.right:
queue.append(data.right)
res.append(temp)
return res
``` ```
### C ### C
```python ```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if not root:
return []
queue, res = [root], []
while queue:
size = len(queue)
temp = []
for i in range(size):
data = queue.pop(0)
temp.append(data.val)
if data.left:
queue.append(data.left)
if data.right:
queue.append(data.right)
res.append(temp)
return res
``` ```
\ No newline at end of file
...@@ -107,7 +107,32 @@ class Solution: ...@@ -107,7 +107,32 @@ class Solution:
## 答案 ## 答案
```python ```python
class Node:
def __init__(self, val=0, neighbors=[]):
self.val = val
self.neighbors = neighbors
class Solution:
def cloneGraph(self, node: "Node") -> "Node":
marked = {}
def dfs(node):
if not node:
return node
if node in marked:
return marked[node]
clone_node = Node(node.val, [])
marked[node] = clone_node
for neighbor in node.neighbors:
clone_node.neighbors.append(dfs(neighbor))
return clone_node
return dfs(node)
``` ```
## 选项 ## 选项
...@@ -115,17 +140,92 @@ class Solution: ...@@ -115,17 +140,92 @@ class Solution:
### A ### A
```python ```python
class Node:
def __init__(self, val=0, neighbors=[]):
self.val = val
self.neighbors = neighbors
class Solution:
def cloneGraph(self, node: "Node") -> "Node":
marked = {}
def dfs(node):
if not node:
return node
if node in marked:
return marked[node]
clone_node = Node(node.val, [])
marked[node] = clone_node
for neighbor in node.neighbors:
clone_node.neighbors.append(dfs(node))
return clone_node
return dfs(node)
``` ```
### B ### B
```python ```python
class Node:
def __init__(self, val=0, neighbors=[]):
self.val = val
self.neighbors = neighbors
class Solution:
def cloneGraph(self, node: "Node") -> "Node":
marked = {}
def dfs(node):
if not node:
return node
if node in marked:
return marked[node]
clone_node = Node(node.val, [])
marked[node] = clone_node
for neighbor in node.neighbors:
clone_node.neighbors.append(neighbor)
return clone_node
return dfs(node)
``` ```
### C ### C
```python ```python
class Node:
def __init__(self, val=0, neighbors=[]):
self.val = val
self.neighbors = neighbors
class Solution:
def cloneGraph(self, node: "Node") -> "Node":
marked = {}
def dfs(node):
if not node:
return node
if node in marked:
return marked[node]
clone_node = Node(node.val, [])
marked[node] = clone_node
for neighbor in node.neighbors:
clone_node.neighbors.append(dfs(neighbor))
return dfs(clone_node)
return dfs(node)
``` ```
\ No newline at end of file
...@@ -43,12 +43,17 @@ class Solution(object): ...@@ -43,12 +43,17 @@ class Solution(object):
:type nums: List[int] :type nums: List[int]
:rtype: int :rtype: int
""" """
a = 0 res = 0
b = 0 for i in range(32):
for num in nums: bitnum = 0
a = (num ^ a) & ~b bit = 1 << i
b = (num ^ b) & ~a
return a for num in nums:
if num & bit:
bitnum += 1
if bitnum % 3 != 0:
res ^= bit
return res
``` ```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册