Construct the Lexicographically Largest Valid Sequence

Given an integer n, find a sequence with elements in the range [1, n] that satisfies all of the following:

  • The integer 1 occurs once in the sequence.
  • Each integer between 2 and n occurs twice in the sequence.
  • For every integer i between 2 and n, the distance between the two occurrences of i is exactly i.

The distance between two numbers in the sequence, a[i] and a[j], is the absolute difference of their indices, |j - i|.

Return the lexicographically largest sequence. It is guaranteed that under the given constraints, there is always a solution.

A sequence a is lexicographically larger than a sequence b of the same length if, in the first position where a and b differ, sequence a has a number greater than the corresponding number in b.

Example 1
Inputn = 3
Output[3,1,2,3,2]
[2, 3, 2, 1, 3] is also a valid sequence, but [3, 1, 2, 3, 2] is the lexicographically largest valid sequence.
Example 2
Inputn = 5
Output[5,3,1,4,3,5,2,4,2]
The sequence satisfies all occurrence and distance requirements and is the lexicographically largest valid sequence for n = 5.

Constraints

  • 1 <= n <= 20

Asked at 5 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate