题目描述:

​       给你一个按 非递减顺序 排序的整数数组 ​​nums​​,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

分析:

  通过双指针从数组两边进行操作,对于新的数组,从右向左填数

代码实现:

class Solution {
public int search(int[] nums, int target) {
int left=0;//数组最左边下标
int right=nums.length-1; //数组最右边下标
while(left<=right){
int middle=left+(right-left)/2;//此写法可以防止溢出
if(nums[middle]<target){
left=middle+1;
}else if(nums[middle]>target){
right=middle-1;
}else{
return middle;
}
}
return -1;
}
}