力扣977.有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

还是双指针写法,原理放后面 来源:代码随想录 (programmercarl.com)

class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        int l=0,r=nums.size()-1;
        int tp=r;
        vector<int> ans=nums;
        while(l<=r){
            if(nums[l]*nums[l]>nums[r]*nums[r]){
                ans[tp]=nums[l]*nums[l];l++;
            }
            else{
                ans[tp]=nums[r]*nums[r];r--;
            }
            tp--;
        }
        return ans;
    }
};

 

posted @ 2022-02-28 17:20  小草今天又在摸鱼吗  阅读(19)  评论(0)    收藏  举报