LeetCode #977 Squares of a Sorted Array
// SORT
var sortedSquares = function(nums) {
let answer;
let squaring = [];
for(let x of nums) {
squaring.push(x * x);
}
answer = squaring.sort((a, b) => a - b);
return answer;
};
// 같은 풀이
var sortedSquares = function(nums) {
return nums.map(num => num * num).sort((a, b) => a - b);
};
투 포인터 문젠데 투 포인터로 풀지 않았.........
복잡도도 꼭꼭 고려하자ㅠㅠ
// 다른 분의 풀이 - TWO POINTERS
const sortedSquares = nums => {
const length = nums.length;
const result = [];
let left = 0;
let right = length - 1;
for (let i = length - 1; i >= 0; i--) {
if (Math.abs(nums[left]) < Math.abs(nums[right])) {
result[i] = nums[right] * nums[right];
right--;
} else {
result[i] = nums[left] * nums[left];
left++;
}
}
return result;
}
SORT
시간 복잡도: O(n log n)
공간 복잡도: O(n)
TWO POINTERS
시간 복잡도: O(n)
공간 복잡도: O(n)