LeetCode #977

Squares of a Sorted Array

1개의 풀이 · C++

문제 원문 보기 ↗

SOLUTION INFO

C++ · main.cpp

main.cpp
class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        int N = nums.size();
        vector<int> answer(N);
        for(int i = N - 1, l = 0, r = N - 1; i >= 0; --i) {
            if(abs(nums[l]) >= abs(nums[r])) answer[i] = nums[l] * nums[l ++];
            else answer[i] = nums[r] * nums[r --];
        }
        return answer;
    }
}

SOLUTION DESCRIPTION

풀이 설명

이미 정렬된 배열이므로 양 끝에서부터 제곱이 가장 큰 값으로 뒤에서부터 채워나가면 된다. Time Complexity: O(N)