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

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

上级 053b3027
......@@ -29,18 +29,21 @@
```java
class Solution {
public boolean containsDuplicate(int[] nums) {
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int x : nums) {
if (map.containsKey(x))
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
if (k < 1 || t < 0)
return false;
SortedSet<Long> binTree = new TreeSet<>();
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;
map.put(x, x);
if (i >= k)
binTree.remove((long) nums[i - k]);
binTree.add((long) nums[i]);
}
return false;
}
}
```
## 答案
......
......@@ -80,7 +80,24 @@ class Solution:
## 答案
```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:
### A
```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
```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
```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):
## 答案
```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):
### A
```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
```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
```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:
## 答案
```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:
### A
```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
```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
```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 @@
## template
```python
class Solution(object):
def subsets(self, nums):
nums.sort()
res = [[]]
for index in range(len(nums)):
size = len(res)
for j in range(size):
curr = list(res[j])
curr.append(nums[index])
res.append(curr)
return res
class Solution:
def subsets(self, nums):
allset = 2 ** len(nums)
result = []
for i in range(allset):
item = []
for j in range(len(nums)):
if i & (2 ** j):
item.append(nums[j])
result.append(item)
return result
if __name__ == "__main__":
s = Solution()
print (s.subsets([1,2,3]))
......
......@@ -63,7 +63,34 @@ class Solution(object):
## 答案
```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):
### A
```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
```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
```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:
## 答案
```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:
### A
```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
```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
```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):
:type nums: List[int]
:rtype: int
"""
a = 0
b = 0
for num in nums:
a = (num ^ a) & ~b
b = (num ^ b) & ~a
return a
res = 0
for i in range(32):
bitnum = 0
bit = 1 << i
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.
先完成此消息的编辑!
想要评论请 注册