合并两个有序数组
class Solution:
def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
"""
Do not return anything, modify nums1 in-place instead.
"""
p1,p2=m-1,n-1
p=m+n-1
while p1 >= 0 and p2 >= 0:
if nums1[p1]<nums2[p2]:
nums1[p]=nums2[p2]
p2-=1
else:
nums1[p]=nums1[p1]
p1-=1
p-=1
格雷编码
class Solution:
def grayCode(self, n: int) -> List[int]:
res=[0]
head=1
for i in range(n):
for j in range(len(res)-1,-1,-1):
res.append(head+res[j])
head<<=1
return res
二叉树的最大深度
class Solution:
def maxDepth(self, root: TreeNode) -> int:
if root is None:
return 0
else:
left_height=self.maxDepth(root.left)
right_height=self.maxDepth(root.right)
return max(left_height,right_height)+1