(1)977有序数组
文章链接:代码随想录 (programmercarl.com)
思考:题目中提到了该数组为有序数组,那么在进行平方后,最大值一定是在数组的最左边或者最左边,所以用双指针进行比较。
Java代码:
class Solution {
public int[] sortedSquares(int[] nums) {
int[] result = new int[nums.length];
int left = 0;
int right = nums.length - 1;
int index = result.length - 1;//结果数组的指针
//区间坚持左闭右闭的原则
while(left<=right && index >= 0){
if(nums[left]*nums[left] >= nums[right]*nums[right]){
result[index] = nums[left]*nums[left];
index--;
left++;
}
else i