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];
}
적절한 결과.
'Leetcode > Top Interview 150' 카테고리의 다른 글
[Array/String][Easy] 26. Remove Duplicates from Sorted Array (1) | 2024.04.28 |
---|---|
[Array/String][Easy] 27. Remove Element (0) | 2024.04.28 |
Contains Duplicate (0) | 2021.06.02 |
Array - Rotate Array (0) | 2021.05.27 |
Array - Best Time to Buy and Sell Stock II (0) | 2021.05.23 |