#2149

Rearrange Array Elements by Sign

pupil · 400 · lc medium +24 · verified · 84.6% accepted · 4,146 likes · top 96%

Description

You are given a 0-indexed integer array nums of even length with an equal count of positive and negative integers.

Rearrange nums so that:

- Adjacent pairs always consist of one positive and one negative integer.

- Elements of the same sign preserve their original relative order.

- The rearranged array starts with a positive integer.

Return the rearranged array.

Example 1:

Input: nums = [3,1,-2,-5,2,-4]
Output: [3,-2,1,-5,2,-4]
Explanation:
The positive integers in nums are [3,1,2]. The negative integers are [-2,-5,-4].
The only possible way to rearrange them such that they satisfy all conditions is [3,-2,1,-5,2,-4].
Other ways such as [1,-2,2,-5,3,-4], [3,1,2,-2,-5,-4], [-2,3,-5,1,-4,2] are incorrect because they do not satisfy one or more conditions.

Example 2:

Input: nums = [-1,1]
Output: [1,-1]
Explanation:
1 is the only positive integer and -1 the only negative integer in nums.
So nums is rearranged to [1,-1].

Code

1
2
3