题目
思路
- 双指针法,一头一尾相向而行,遍历整个数组
解法
class Solution {
public int[] sortedSquares(int[] nums) {
int array[] = new int[nums.length];
int beginIndex = 0;
int endIndex = nums.length - 1;
int k = nums.length - 1;
for (int i = 0; i < nums.length; i++) {
if (nums[beginIndex] * nums[beginIndex] > nums[endIndex] * nums[endIndex]) {
array[k--] = nums[beginIndex] * nums[beginIndex];
beginIndex++;
}
else {
array[k--] = nums[endIndex] * nums[endIndex];
endIndex--;
}
}
return array;
}
}