Scribbling

LeetCode: 88. Merge Sorted Array 본문

Computer Science/Coding Test

LeetCode: 88. Merge Sorted Array

focalpoint 2021. 10. 9. 18:10

The key here is that we need to push elements from nums2 to nums1 while not disturbing the existing elements in nums1.

So, put the elems from nums2 to nums1 from the end.

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.
        """
        p1, p2 = m - 1, n - 1
        for i in range(m+n-1, -1, -1):
            p1_val = nums1[p1] if p1 >= 0 else -float('inf')
            p2_val = nums2[p2] if p2 >= 0 else -float('inf')
            if p1_val >= p2_val:
                nums1[i] = p1_val
                p1 -= 1
            else:
                nums1[i] = p2_val
                p2 -= 1

 

'Computer Science > Coding Test' 카테고리의 다른 글

LeetCode: 100. Same Tree  (0) 2021.10.11
LeetCode: 90. Subsets II  (0) 2021.10.10
LeetCode: 98. Validate Binary Search Tree  (0) 2021.10.09
LeetCode: 99. Recover Binary Search Tree  (0) 2021.10.08
LeetCode: 89. Gray Code  (0) 2021.10.08