977. 有序数组的平方
示例 1:
输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]
示例 2:
输入:nums = [-7,-3,2,3,11]
输出:[4,9,9,49,121]
思考
简单题嘎嘎乱杀!
双指针法
leftPoint
:指向最左端
rightPoint
:指向最右端
利用两个指针比较出最大值并保存到新创建的数值ints
中,移动指针,直到完全遍历数组
class Solution {
public static int[] sortedSquares(int[] nums) {
int leftPoint=0;
int rightPoint=nums.length-1;
int[] ints=new int[nums.length];
int count=nums.length-1;
while (true){
if(Math.abs(nums[leftPoint])>Math.abs(nums[rightPoint])){
ints[count]=nums[leftPoint]*nums[leftPoint];
leftPoint++;
count--;
}else {
ints[count]=nums[rightPoint]*nums[rightPoint];
rightPoint--;
count--;
}
if(count==-1) break;
}
return ints;
}
}