You are given a 0-indexed integer array nums of even length consisting of an equal number of positive and negative integers.
You should return the array of nums such that the the array follows the given conditions:
nums is preserved.Return the modified array after rearranging the elements to satisfy the aforementioned conditions.
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].
Constraints:
2 <= nums.length <= 2 * 105nums.length is even1 <= |nums[i]| <= 105nums consists of equal number of positive and negative integers.It is not required to do the modifications in-place.
This approach involves creating two separate lists to store positive and negative numbers. After separating, we iterate through both lists simultaneously, placing elements alternatively from each into a new result list. This ensures that conditions for alternating signs and preserving order are met.
This C program separates the positive and negative numbers into two arrays, then fills the result array in alternating order.
C++
Java
Python
C#
JavaScript
Time Complexity: O(n); Space Complexity: O(n).
This approach attempts to rearrange the array in-place with the help of two pointers: one for the next positive element and one for the next negative. Starting with the assumption that the first element should be positive, iterate over the array and swap elements to their correct positions as needed.
In this in-place C solution, pointers keep track of the correct next position for positive and negative elements, swapping where necessary.
C++
Java
Python
C#
JavaScript
Time Complexity: O(n); Space Complexity: O(1).
| Approach | Complexity |
|---|---|
| Two Lists Approach | Time Complexity: O(n); Space Complexity: O(n). |
| In-place Rearrangement | Time Complexity: O(n); Space Complexity: O(1). |
Rearrange Array Elements by Sign | 2 Varieties of same Problem • take U forward • 293,410 views views
Watch 9 more video solutions →Practice Rearrange Array Elements by Sign with our built-in code editor and test cases.
Practice on FleetCodePractice this problem
Open in Editor