Cho hai mảng số nguyên nums1 và nums2 được sắp xếp tăng dần, và hai số nguyên m, n lần lượt là số lượng phần tử có nghĩa trong nums1 và nums2.
Hãy hợp nhất nums2 vào nums1 thành một mảng duy nhất được sắp xếp tăng dần.
Lưu ý: nums1 có kích thước bằng m + n, trong đó m phần tử đầu là dữ liệu, n phần tử cuối được đệm bằng số 0 để chứa các phần tử của nums2.
Ví dụ 1:
Input: nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
Output: [1,2,2,3,5,6]
Định Dạng Đầu Vào (Input)
Dòng 2: Số nguyên m
Dòng 3: Mảng nums2
Dòng 4: Số nguyên n
Định Dạng Đầu Ra (Output)
Ràng Buộc (Constraints)
nums1.length == m + n0 <= m, n <= 200
Ví Dụ Kiểm Thử Mẫu
[1,2,3,0,0,0]
3
[2,5,6]
3
[1,2,2,3,5,6]
[1]
1
[]
0
[1]
Kỹ thuật Điền Từ Đuôi Về Đầu (Three Pointers Backwards) O(m + n)
Dùng 3 con trỏ: p1 = m - 1, p2 = n - 1, và p = m + n - 1. So sánh phần tử lớn nhất từ đuôi của 2 mảng đặt vào vị trí p để không bị ghi đè dữ liệu chưa xử lý.
Bấm Chạy thử để kiểm tra các bộ test mẫu hoặc Nộp bài để chấm điểm chính thức.



