利用双指针比较首尾元素平方后的大小,大的塞进去新数组,同时指针移动,小的不变。
class Solution {
public int[] sort(int[] num) {
int n = num.length;
int[] a = new int[n];
for (int i = 0, j = n - 1, temp = n - 1; i <= j;) {
if (num[i] * num[i] > num[j] * num[j]) {
a[temp] = num[i] * num[i];
i++;
} else {
a[temp] = num[j] * num[j];
j--;
}
temp--;
}
return a;
}
}