这个题也是通过相向双指针做,两边的数是绝对值最大的数,因此平方后两边的数也最大
代码如下
class Solution {
public static int[] sortedSquares(int[] nums) {
int[] arr=new int[nums.length];
int left=0;
int right= nums.length-1;
for(int i=nums.length-1;i>=0;i--){
int a=(int)(Math.pow(nums[left],2));
int b=(int)(Math.pow(nums[right],2));
if(a>b){
arr[i]=a;
left++;
}else{
arr[i]=b;
right--;
}
}
return arr;
}
}