Menu
CoddyTech

Merge Sorted Array

Bạn có hai mảng số nguyên, nums1 và nums2. Mỗi mảng đã được sắp xếp theo thứ tự không giảm. Hãy trả về một mảng duy nhất chứa mọi giá trị từ cả hai mảng, cũng theo thứ tự không giảm. Giá trị xuất hiện trong cả hai mảng sẽ xuất hiện trong kết quả với số lần bằng tổng số lần nó xuất hiện trong hai mảng.

Hàm

merge(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
mảng đã sắp xếp thứ nhất
nums2integer-array
mảng đã sắp xếp thứ hai
Trả vềinteger-array
mọi giá trị của cả hai mảng trong một mảng đã sắp xếp, có độ dài nums1.length + nums2.length

Ràng buộc

  • 1 ≤ nums1.length, nums2.length ≤ 2000
  • -105 ≤ nums1[i], nums2[j] ≤ 105
  • nums1 và nums2 đều được sắp xếp theo thứ tự không giảm.

Ví dụ

Đầu vào
nums1 = [1, 4, 9]nums2 = [2, 3, 10]
Đầu ra
[1, 2, 3, 4, 9, 10]
Giải thích
Đọc hai phần tử đầu tiên và giữ lại phần tử nhỏ hơn: 1, rồi đến 2 và 3 từ nums2, tiếp theo là 4 và 9 từ nums1, cuối cùng là 10. Kết quả chứa đủ cả sáu giá trị.
challenge icon

Câu hỏi mở rộng

Bạn có thể gộp k mảng đã sắp xếp, chứa tổng cộng N giá trị, trong thời gian O(N log k) không?

Đặt lại code
def merge(nums1, nums2):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

nums1 = [1, 4, 9]
nums2 = [2, 3, 10]

Đầu ra mong đợi

[1, 2, 3, 4, 9, 10]