Squares of a Sorted Array
Description
Given an array of integers A
sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order.
Example 1:
Input: [-4,-1,0,3,10] Output: [0,1,9,16,100]
Example 2:
Input: [-7,-3,2,3,11] Output: [4,9,9,49,121]
Note:
1 <= A.length <= 10000
-10000 <= A[i] <= 10000
A
is sorted in non-decreasing order.
Solution(javascript)
/** Two Pointers O(n)
* @param {number[]} A
* @return {number[]}
*/
const sortedSquares = function (A) {
const result = []
let left = 0
let right = A.length - 1
while (left <= right) {
const leftSquare = A[left] * A[left]
const rightSquare = A[right] * A[right]
if (leftSquare < rightSquare) {
result.push(rightSquare)
right -= 1
} else {
result.push(leftSquare)
left += 1
}
}
return result.reverse()
}