3667. Sort Array By Absolute Value 🔒
题目描述
You are given an integer array nums
.
Rearrange elements of nums
in non-decreasing order of their absolute value.
Return any rearranged array that satisfies this condition.
Note: The absolute value of an integer x is defined as:
x
ifx >= 0
-x
ifx < 0
Example 1:
Input: nums = [3,-1,-4,1,5]
Output: [-1,1,3,-4,5]
Explanation:
- The absolute values of elements in
nums
are 3, 1, 4, 1, 5 respectively. - Rearranging them in increasing order, we get 1, 1, 3, 4, 5.
- This corresponds to
[-1, 1, 3, -4, 5]
. Another possible rearrangement is[1, -1, 3, -4, 5].
Example 2:
Input: nums = [-100,100]
Output: [-100,100]
Explanation:
- The absolute values of elements in
nums
are 100, 100 respectively. - Rearranging them in increasing order, we get 100, 100.
- This corresponds to
[-100, 100]
. Another possible rearrangement is[100, -100]
.
Constraints:
1 <= nums.length <= 100
-100 <= nums[i] <= 100
解法
方法一:自定义排序
我们可以使用自定义的排序函数来对数组进行排序,排序的依据是每个元素的绝对值。
时间复杂度 \(O(n \times \log n)\),空间复杂度 \(O(\log n)\)。其中 \(n\) 是数组 \(\textit{nums}\) 的长度。
1 2 3 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 |
|
1 2 3 4 5 6 |
|