Code Kata Subsets II

chaeruru·2021년 8월 5일
0

알고리즘 풀이

목록 보기
4/9

문제 링크

Explore - LeetCode

문제 설명

주어진 배열의 멱집합을 구하는 문제

문제 풀이

재귀함수를 통해서 중복이 되지 않는 모든 부분 집합을 구한다. 주어진 배열을 미리 정렬을 한 후 객체를 이용하여 중복 체크를 했다.

나의 코드

var subsetsWithDup = function (nums) {
  const answer = [];
  const check = {};
  nums.sort((a, b) => a - b);
  function solve(lastPick, pick) {
    if (!check[pick]) {
      check[pick] = 1;
      answer.push([...pick]);
    }
    for (let i = lastPick + 1; i < nums.length; ++i)
      solve(i, [...pick, nums[i]]);
  }
  solve(-1, []);
  return answer;
};
profile
알고리즘과 프론트엔드 부셔버리기

0개의 댓글