
普通数组遍历法
if(A===null) return null;
for(let i=0;i<A.length;i++){
A[i] = Math.pow(Math.abs(A[i]), 2);
}
A.sort(function(a,b){
return a - b;
});
双指针法
思路: 定义两个指针,分别指向数组的头和尾,然后头尾进行比较,谁大谁就先unshift到数组中,同时左指针向右移动,右指针向左移动
let left = 0, right = A.length - 1;
let B = [];
while(left <= right){
let leftItem = Math.pow(A[left], 2);
let rightItem = Math.pow(A[right], 2);
if (leftItem > rightItem) {
B.unshift(leftItem);
left ++;
} else {
B.unshift(rightItem);
right --;
}
}
return B;
网友评论