977. Squares of a Sorted Array
Given an integer array nums sorted in non-decreasing order, return an array of the squares of each number sorted in non-decreasing order
ArrayExample 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]
Constraints:
1 <= nums.length <= 10^4-10^4 <= nums[i] <= 10^4numsis sorted in non-decreasing order.
Approach
Solution
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortedSquares = function(nums) {
let n = nums.length;
let ans = new Array(nums.length);
let left = 0, right = nums.length - 1;
for (let i = n -1; i >= 0; i--){
let square;
if(Math.abs(nums[left]) < Math.abs(nums[right])){
square = nums[right];
right--;
}else{
square = nums[left];
left++;
}
ans[i] = square*square;
}
return ans;
};