Python, C++, JavaScript, SQL 및 TypeScript의 다양한 LeetCode 솔루션을 살펴보세요. 여러 프로그래밍 언어로 인터뷰 준비, 학습 및 코드 연습에 적합합니다. Github 레포 링크
주어진 배열 별개의 정수 후보자
그리고 목표 정수 목표
, 반품 모두의 목록 독특한 조합 ~의 후보자
선택한 숫자의 합은 다음과 같습니다. 목표
. 다음의 조합을 반환할 수 있습니다. 어떤 주문이든.
그만큼 같은 번호는 다음 중에서 선택할 수 있습니다. 후보자
안 횟수 무제한. 선택한 숫자 중 하나 이상의 빈도가 다른 경우 두 가지 조합은 고유합니다.
테스트 케이스는 총합이 다음과 같은 고유 조합의 수와 같이 생성됩니다. 목표
보다 작다 150
주어진 입력에 대한 조합.
예시 1:
입력: 후보 = [2,3,6,7], 대상 = 7 산출: [[2,2,3],[7]] 설명: 2와 3은 후보이고 2 + 2 + 3 = 7입니다. 2는 여러 번 사용될 수 있으며 7은 후보이고 7 = 7입니다. 이는 유일한 두 가지 조합입니다.
예 2:
입력: 후보 = [2,3,5], 대상 = 8 산출: [[2,2,2,2],[2,3,3],[3,5]]
예시 3:
입력: 후보 = [2], 대상 = 1 산출: []
제약:
1 <= 후보. 길이 <= 30
2 <= 후보자[i] <= 40
- 모든 요소
후보자
~이다 별개의. 1 <= 대상 <= 40
파이썬
입력에서 가져오기 목록 클래스 솔루션: def CombinationSum(self, Candidate: List[int], target: int) -> List[List[int]]: result = [] def backtrack(remain: int, Comb: List[int] , start: int): 남아 있는 경우 == 0: result.append(list(comb)) return elif 남아 < 0: return for i in range(start, len(candidates)): Comb.append(candidates[i]) backtrack(remain - 후보자[i], Comb, i) Comb.pop() backtrack(target, [], 0) 반환 결과