力扣977-有序数组的平方【学习笔记】

43 阅读1分钟

问题:给定一个已排序递增数组,要求返回每个数的平方形成的新数组,要求也是递增

[-4,-1,0,3,10]

难点:如何排序

方法:每次取绝对值最大的数去求平方,再放入新数组

var sortedSquares = function(nums) {
    let res = []
    let left = 0
    let right = nums.length-1
    while(left<=right){
        if(Math.abs(nums[left])>Math.abs(nums[right])){
            res.unshift(nums[left]*nums[left])
            left++
        }else{
            res.unshift(nums[right]*nums[right])
            right--
        }
    }
    return res
};