Leetcode学习笔记:#977. 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.
实现:
public int[] sortedSquares(int[] A){
int n = A.length;
int[] result = new int[n];
int i = 0, j = n-1;
for(int p = n -1; p >= 0; p--){
if(Math.abs(A[i]) > Math.abs(A[j])){
result[p] = A[i] * A[i];
i++;
}else{
result[p] = A[j] * A[j];
j--;
}
return result;
}
}
思路:
两个指针,一个从前往后,一个从后向前,每遍历一次则判断p和i的绝对值哪个大,大的则平方后放在p的位置。