Python 合并两个有序数组
- 正文
正文
题目说明如下:
这里我们直接让 nums1
的后 n
个数等于 nums2
数组,然后对 nums1
数组整体进行排序即可。
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 : m + n] = 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.
"""
for num2 in nums2:
if m == 0:
nums1.insert(0, num2)
nums1.remove(0)
if m == 1 and nums1[0] <= num2:
nums1.insert(1, num2)
nums1.remove(0)
if m == 1 and nums1[0] > num2:
nums1.insert(0, num2)
nums1.remove(0)
for i in range(1, m):
if nums1[i - 1] <= num2 <= nums1[i]:
nums1.insert(i, num2)
nums1.remove(0)
break
elif num2 < nums1[0]:
nums1.insert(0, num2)
nums1.remove(0)
break
elif num2 > nums1[i] and i < m - 1:
continue
else:
print('m: ', m)
nums1.insert(m, num2)
nums1.remove(0)
m = m + 1
nums1.sort()
如果大家觉得有用,就请点个赞吧~