给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
//双指针解法:
class Solution {
public int[] sortedSquares(int[] nums) {
int i=0,j=nums.length-1,k=nums.length;
int[] result = new int[nums.length];//定义一个新数组接收比较后的数据
while(i<=j){
if(nums[i]*nums[i]>nums[j]*nums[j]){
result[k-1]=nums[i]*nums[i];//最大的放到最后
k--;
i++;//前面的往后挪
}
else{
result[k-1]=nums[j]*nums[j];
k--;
j--;//后面的往前挪
}
}
return result;
}
}