有序数组的平方
- 使用双指针解题
- 有序数组,非递减顺序排序
- 平方后的最大值要不在最左边,要不在最右边,因此,只需要两遍向中间靠拢就行
public static int[] sortedSquares(int[] nums){
int k = nums.length - 1;
int[] result = new int[nums.length];
for(int i = 0,j=nums.length-1;i<=j;){
if(nums[i] * nums[i] > nums[j] * nums[j]){
result[k--] = nums[i] * nums[i];
i++;
}else{
result[k--] = nums[j] * nums[j];
j--;
}
}
return result;
}