JS) LeetCode - Contains Duplicate

kangdari·2020년 7월 14일
0

개요

LeetCode 추천 문제 75

문제

Contains Duplicate

문제 설명

간단한다. 입력한 배열에 중복 값이 있으면 true, 없으면 false를 반환.

문제 풀이

ES6의 Set 타입을 사용했다. Set은 중복을 허용하지 않기 때문에 중복 값이 있다면 입력된 nums 배열의 크기와 다를 것이라고 생각했다.

const containsDuplicate = function (nums) {
  const set = new Set(nums);
  return set.size === nums.length ? false : true;
};

이렇게도 풀어봤다. (foreEach 문에서는 return이 적용 안됨...)
시간복잡도 O(n) ??

const containsDuplicate = function (nums) {
  const set = new Set();

  for (num of nums) {
    if (set.has(num)) {
      return true;
    }
    set.add(num);
  }
  return false;
};

정렬을 이용한 풀이 방법이다. 오름차순으로 정렬 후 현재 값과 이전 값이 같은지 확인했다.
시간복잡도 O(nlogn)

const containsDuplicate = function (nums) {
  nums.sort((a, b) => a - b);
  for (let i = 1; i < nums.length; i++) {
    if (nums[i - 1] === nums[i]) return true;
  }
  return false;
};

0개의 댓글