Leetcode腾讯精选练习50题
88-合并两个有序数组
一开始我是这样写的
class Solution(object):
def merge(self, nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: None Do not return anything, modify nums1 in-place instead.
"""
nums1=nums1[:m]+nums2[:n]
nums1.sort()
我想这是不是跟深拷贝浅拷贝有关?就换了一种写法
class Solution(object):
def merge(self, nums1, m, nums2, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: None Do not return anything, modify nums1 in-place instead.
"""
for i in range(n):
nums1[m+i]=nums2[i]
nums1.sort()
然后就好了
看了官方题解,确实和深浅拷贝有关,应该这样👇
nums1[:] = sorted(nums1[:m] + nums2)
官方题解法二是双指针,有空好好学学这个方法
89-格雷编码
好难啊这题,不会。。。
这题题解可少了,没有官方题解,找了一个大佬的答案
104-二叉树的最大深度
不会。。。。。。
官方题解:递归、广度优先搜索变形