[LeetCode] 977. Squares of a Sorted Array

題目鏈接:Squares of a Sorted Array

解題思路:

兩種方法,一種是暴力,先求平方再排序;另一種稍微改進,每次從兩邊找絕對值較大的那個數,求平方。

 

法一:

class Solution {
public:
    vector<int> sortedSquares(vector<int>& A) {
        for (int &a:A)
        {
            a = a*a;
        }
        sort(A.begin(), A.end());
        return A;
    }
};

法二:

class Solution {
public:
    vector<int> sortedSquares(vector<int>& A) {
        int len = A.size();
        int l = 0;
        int r = len-1;
        vector<int> B(A.size(), 0);
        
        for (int k = len-1; k >= 0; --k)
        {
            if(abs(A[l]) >= abs(A[r]))
                B[k] = pow(A[l++], 2);
            else
                B[k] = pow(A[r--], 2);
        }
        return B;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章