MergeSortedArray
Published at 2021-11-09
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.
"""
while m > 0 and n > 0:
if nums1[m - 1] < nums2[n - 1]:
nums1[m + n - 1] = nums2[n - 1]
n -= 1
else:
nums1[m + n - 1] = nums1[m - 1]
m -= 1
# m이 0이되면 (n은 아직 1이상인데) while문 빠져나와버려서 nums2의 숫자들이 추가되지 못함
# 그래서 m이 0일 경우 추가 처리
if m == 0:
nums1[:n] = nums2[:n]
print(nums1)
# 둘에서 뽑아내야하는 갯수의 젤 마지막 번째 숫자를 비교
# 그게 각 2, 3이라면 총 len=5까지의 리스트를 만들어야함
# 그럼 nums1이랑 nums2에서 뽑아낼수 있는 젤 마지막숫자들끼리 비교해서 집어넣기