[Leetcode]977. Squares of a Sorted Array

Easy

Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order.

 

Example 1:

Input: [-4,-1,0,3,10]
Output: [0,1,9,16,100]

Example 2:

Input: [-7,-3,2,3,11]
Output: [4,9,9,49,121]

 

Note:

  1. 1 <= A.length <= 10000
  2. -10000 <= A[i] <= 10000
  3. A is sorted in non-decreasing order.

题目大意:给出一个非降序排列的数组,求出数组中各自数字的平方,并且非降序排列。

 

对数组中的数字求平方后,复数的平方会变成正数,可能会导致数组的排序不再非降序,因此可对数组中数字求平方后进行升序排序。

代码如下:

class Solution {
public:
    vector<int> sortedSquares(vector<int>& A) {
        for(int i=0;i<A.size();++i){
            A[i]*=A[i];
        }
        sort(A.begin(),A.end());
        return A;
    }
};

 

上一篇:Codeforces 1329 题解


下一篇:[LeetCode] 977. Squares of a Sorted Array