建立建立相同长度的数组,然后对传递的数组首尾进行平方和比大小,大的存在新数组后面,从后往前存。存完一个就把原数组的索引++或--,然后继续判断,直到left大于right,表示判断结束,返回新数组
package com.itheima.a;
public class Test5 {
public static void main(String[] args) {
int[] nums={-4,-1,0,3,10};
int[] ints = sortedSquares(nums);
for (int i = 0; i < ints.length; i++) {
System.out.println(ints[i]);
}
}
public static 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) {
if (nums[left] * nums[left] > nums[right] * nums[right]) {
result[index--] = nums[left] * nums[left];
++left;
} else {
result[index--] = nums[right] * nums[right];
--right;
}
}
return result;
}
}