题目描述: 给你一个按 非递减顺序排序的整数数组 nums ,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 分析: 通过双指针从数组两边进行操作,对
题目描述:
给你一个按 非递减顺序 排序的整数数组 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;
}
}