Squares of a Sorted Array
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.
class Solution {
public int[] sortedSquares(int[] A) {
int p1 = 0, p2 = A.length - 1;
int[] ans = new int[A.length];
int index = A.length - 1;
while (p1 <= p2) {
if (A[p1] * A[p1] > A[p2] * A[p2])
ans[index--] = A[p1] * A[p1++];
else
ans[index--] = A[p2] * A[p2--];
}
return ans;
}
}
Last updated