0
点赞
收藏
分享

微信扫一扫

leetcode977

丹柯yx 2022-02-10 阅读 48

解题思路
两种做法:1.平方后排序
2.双指针(左边指针平方与右边指针平方相比较,创建一个数组,从numssize-1开始,大的往里面存,然后--)


int* sortedSquares(int* nums, int numsSize, int* returnSize){
    //
    *returnSize=numsSize;//因为这个只是平方后排序,大小不变
    int right=numsSize-1;
    int left =0;
    int*ans=(int*)malloc(sizeof(int)*numsSize);
    int index;
    for(index=numsSize-1;index>=0;index--)
    {
        int leftsquars=nums[left]*nums[left];
        int rightsquare=nums[right]*nums[right];
        if(leftsquars>rightsquare)
        {
            ans[index]=leftsquars;
            left++;
        }
        else
        {
            ans[index]=rightsquare;
            right--;
        }
    }
    return ans;
}
举报

相关推荐

0 条评论