/321. Create Maximum Number

321. Create Maximum Number

Hard
Arrays34.8% acceptance

Given two integer arrays digit_sequence_a and digit_sequence_b, representing digits of two numbers, and an integer target_length, construct the lexicographically largest sequence of length target_length by selecting digits from both arrays. The relative order of digits from each array must be preserved. Return the resulting sequence as a list of integers.

Example 1

Input: digit_sequence_a = [2, 5, 3], digit_sequence_b = [7, 1, 4], target_length = 4

Output: [7, 5, 3, 4]

Explanation: Pick 1 from digit_sequence_b, then 2 from digit_sequence_a, then 1 from digit_sequence_b, then 1 from digit_sequence_a for maximum sequence.

Example 2

Input: digit_sequence_a = [1, 9, 8], digit_sequence_b = [6, 2], target_length = 3

Output: [9, 8, 6]

Explanation: Pick 2 from digit_sequence_a, then 1 from digit_sequence_b for maximum sequence.

Constraints

  • 1 <= len(digit_sequence_a) <= 500
  • 1 <= len(digit_sequence_b) <= 500
  • 0 <= digit_sequence_a[i] <= 9
  • 0 <= digit_sequence_b[i] <= 9
  • 1 <= target_length <= len(digit_sequence_a) + len(digit_sequence_b)
  • digit_sequence_a and digit_sequence_b do not have leading zeros
Python (current runtime)

Case 1

Input: digit_sequence_a = [4, 2, 1], digit_sequence_b = [5, 3, 6], target_length = 5

Expected: [5, 4, 3, 2, 6]

Case 2

Input: digit_sequence_a = [8, 7, 6], digit_sequence_b = [5, 9], target_length = 4

Expected: [9, 8, 7, 6]

Case 3

Input: digit_sequence_a = [1, 2], digit_sequence_b = [3, 4, 5], target_length = 3

Expected: [5, 4, 3]

Case 4

Input: digit_sequence_a = [9, 1, 2], digit_sequence_b = [3, 7], target_length = 4

Expected: [9, 7, 3, 2]

Case 5

Input: digit_sequence_a = [6], digit_sequence_b = [7, 8, 9], target_length = 2

Expected: [9, 8]