88. Merge Sorted Array

정렬된 두 배열을 병합하면서 오름차순으로 정렬

88. Merge Sorted Array

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        // 뒤에서 부터 큰 숫자 순서로 넣는다(둘 중에 하나라도 처리할 값이 없으면 중지한다).
        while (m > 0 && n > 0) {
            nums1[m + n - 1] = Math.max(nums1[m - 1], nums2[n - 1]);
            // 큰값이 이동했으므로 인덱스를 감소 시킨다.
            if (nums1[m - 1] >= nums2[n - 1]) {
                m -= 1;
            } else {
                n -= 1;
            }
        }
        
        // 만약 num2가 남아있다면 num1보다 작은값 이므로 앞에서 부터 채우면 된다.
        if (n > 0) {
            for (int i = 0; i < n; i++) {
                nums1[i] = nums2[i];
            }
        }
    }
}





© 2017. by yeopoong.github.io

Powered by yeopoong