Skip to content

Commit a35e8a9

Browse files
committed
Add code file
1 parent c828d68 commit a35e8a9

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution(object):
2+
def twoSum(self, numbers, target):
3+
"""
4+
:type numbers: List[int]
5+
:type target: int
6+
:rtype: List[int]
7+
"""
8+
# if numbers[i]+numbers[j]>target, then numbers[k]+numbers[j]>target, k=i+1,...,j-1, thus exclude them
9+
# the next step is to investigate numbers[i]+numbers[j-1]
10+
left = 0
11+
right = len(numbers)-1
12+
while left < right:
13+
if numbers[left] + numbers[right] == target:
14+
return [left+1, right+1]
15+
elif numbers[left] + numbers[right] > target:
16+
right -= 1
17+
else:
18+
left += 1
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode(object):
3+
# def __init__(self, x):
4+
# self.val = x
5+
# self.left = None
6+
# self.right = None
7+
8+
class Solution(object):
9+
def lowestCommonAncestor(self, root, p, q):
10+
"""
11+
:type root: TreeNode
12+
:type p: TreeNode
13+
:type q: TreeNode
14+
:rtype: TreeNode
15+
"""
16+
if root in (None, p, q):
17+
return root
18+
left = self.lowestCommonAncestor(root.left, p, q)
19+
right = self.lowestCommonAncestor(root.right, p, q)
20+
if left and right:
21+
return root
22+
return left or right

0 commit comments

Comments
 (0)