Leetcode/Top Interview 150

[Array/String][Easy] 88. Merge Sorted Array

자전거통학 2024. 4. 28. 20:16

 

https://leetcode.com/problems/merge-sorted-array/description

 

Q. 주어진 정렬된 배열 nums1과 nums2를 오름차순으로 merge하라. 

 이때 nums1과 nums2에 각각 m과 n만큼의 유효한 값이 있다고 가정하고, 결과를 nums1에 넣어라. 

 

Solution.

 추가 버퍼 제한이 없으므로, 간단하게 유효한 길이만큼 비교 / 처리 한다. 

 

public void Merge(int[] nums1, int m, int[] nums2, int n) 
{
    List<int> ret = new List<int>();
    int idx1 = 0, idx2 = 0;
    for(int q = 0; q < m+n; ++q)
    {
        int val;
        if(idx1<m && idx2<n)
            val = nums1[idx1]<nums2[idx2] ? nums1[idx1++] : nums2[idx2++];
        else if(idx1<m && idx2>=n)
            val = nums1[idx1++];
        else 
            val = nums2[idx2++];

        ret.Add(val);
    }

    for(int q = 0; q < m+n; ++q)
        nums1[q] = ret[q];
}

 

 

 

적절한 결과.