Given an integer array `nums` sorted in **non-decreasing** order, return an array of the **squares of each number** sorted in non-decreasing order.
Squaring a negative number makes it positive, so the smallest squares may come from the middle of the array. Try to solve it in O(n) time without sorting the squared values.
Example 1
Input:nums = [-4,-1,0,3,10]
Output:[0,1,9,16,100]
Explanation:After squaring, the array becomes [16,1,0,9,100]. After sorting, it becomes [0,1,9,16,100].
Example 2
Input:nums = [-7,-3,2,3,11]
Output:[4,9,9,49,121]
Example 3
Input:nums = [1,2,3]
Output:[1,4,9]
Constraints
- 1 <= nums.length <= 10^4
- -10^4 <= nums[i] <= 10^4
- nums is sorted in non-decreasing order.