《LeetCode刷题》数组与队列
如何实现一个变长数组?
支持索引与随机访问
分配多长的连续空间
空间不够用了怎么办
空间剩余很多如何回收
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.
"""
i = m -1
j = n -1
for k in range(m+n-1, -1, -1):
if j < 0 or ( i >= 0 and nums1[i] >= nums2[j]):
nums1[k] = nums1[i]
i = i -1
else:
nums1[k] = nums2[j]
j = j -1
思路,利用列表的扩容原理,从右侧开始遍历,然后比较两个列表的元素大小,并进行相应的替换。需要注意的是不要有越界的情况发生。