간단하게 제곱한 후 sort 라이브러리를 이용해 정렬하여 리턴하는 방식이다.
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
for(int i=0; i<nums.size(); i++){
nums[i]*= nums[i];
}
sort(nums.begin(), nums.end());
return nums;
}
};
주어진 벡터의 left 와 right 포인터를 두고 그 값을 서로 비교하며 더 큰 값을 새로운 배열에 저장한다.
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int n=nums.size();
int left=0; int right=n-1;
vector<int> sorted(n);
int pos = n-1;
while(left<=right){ //-4,-1,0,3,10
if(abs(nums[left])<abs(nums[right])){
sorted[pos--] = pow(nums[right], 2); right--;
}
else { // 1 9 16 100
sorted[pos--] = pow(nums[left], 2); left++;
}
}
return sorted;
}
};