题目
想法
想法: 由于升序排序
所以可以知道,平方后变成 大到小到大
因此,从双指针的角度,分别比较最大。(实际上可以理解为两个升序数组的归并为一个数组的排序)
class Solution {
public int[] sortedSquares(int[] nums) {
int left=0,right=nums.length-1;
int pos=nums.length-1;
int[] ans=new int[nums.length];
while(left<=right){
int leftNumber=nums[left]*nums[left];
int rightNumber=nums[right]*nums[right];
if(leftNumber>=rightNumber){
left++;
ans[pos--]=leftNumber;
}else{
right--;
ans[pos--]=rightNumber;
}
}
return ans;
}
}