Saturday, June 15, 2019

LeetCode [977] Squares of a Sorted Array

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.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
    vector<int> sortedSquares(vector<int>& A) {
        int n = A.size();
        vector<int> ret(n);
        int l = 0, r = n-1, i = n-1;
        while(l<=r){
            if(abs(A[l])>=abs(A[r])){
                ret[i] = A[l]*A[l];
                l++;
            }else{
                ret[i] = A[r]*A[r];
                r--;
            }
            i--;
        }
        return ret;
    }
};

No comments:

Post a Comment