[LeetCode] Squares of a Sorted Array - JavaScript

이은빈 EUNBIN·2021년 6월 10일
0
post-thumbnail

👩🏻‍💻 문제

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)

profile
Frontend Engineer & Value Creator

0개의 댓글