直接利用Python自带的语句进行合并和排序
方法一没有利用到原数组有序的性质
利用双指针,可以有效减少时间
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.
"""
nums1[m:]=nums2
nums1.sort()
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.
"""
index1,index2=0,0
res=[]
while index1<m or index2<n:
if index1==m:
res.append(nums2[index2])
index2 +=1
elif index2==n:
res.append(nums1[index1])
index1 += 1
elif nums1[index1]<nums2[index2] :
res.append(nums1[index1])
index1 +=1
else:
res.append(nums2[index2])
index2 +=1
nums1[:]=res
方法一、
时间复杂度:
O
(
(
N
+
M
)
?
l
o
g
(
m
+
n
)
)
O((N+M) * log(m+n))
O((N+M)?log(m+n)),排序序列长度为(M+N),直接套用快速排序的时间复杂度即可
空间复杂度:
O
(
l
o
g
(
N
+
M
)
)
O(log(N+M))
O(log(N+M))
方法二、
时间复杂度:
O
(
N
+
M
)
O(N+M)
O(N+M)
空间复杂度:
O
(
N
+
M
)
O(N+M)
O(N+M)