Leetcode Java Merge Sorted Array
업데이트:
문제
코드
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int length = m + n - 1;
m--; n--;
while (n >= 0) {
nums1[length--] = m < 0 || nums1[m] < nums2[n] ? nums2[n--] : nums1[m--];
}
}
}
결과
설명
-
주어진 배열 nums1의 m자리 까지의 값들과, 주어진 배열 nums2의 n자리 까지의 값들을 오름차순으로 nums1에 다시 넣어주는 문제이다.
-
주어진 두 정수 m과 n을 합한 값에서 1을 뺀 값으로 변수 length를 정의한다.
-
주어진 두 정수 m과 n의 index를 활용하기 위하여 각각 1을 빼준다.
-
반복문을 통해 nums2의 값을 nums1에 오름차순으로 정렬된 순서로 넣어준다.
- m이 0이 아니거나 nums1[m]이 nums2[n]보다 작을 경우 nums2[n] 값을 nums1[length] 값에 넣어주고, n과 length를 감소시킨다.
- 위의 경우가 아닌 경우 nums1[m]의 값을 nums1[length]에 넣어주고 m과 length를 감소시킨다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기