임의의 목록에서 각각 길이가 다양하고 가능한 모든 고유 조합을 포함하는 단일 목록을 생성하는 것은 도전적인 임무. 이 기사에서는 재귀 개념을 사용하는 Java 기반 솔루션을 살펴봅니다.
문제 설명
알 수 없는 수의 목록이 있고 각각 길이를 알 수 없는 경우 목표는 다음과 같습니다. 이 목록의 가능한 모든 요소 조합으로 구성된 단일 목록을 만듭니다. 예를 들어, 목록 X와 Y가 다음과 같이 정의된 경우:
X: [A, B, C] Y: [W, X, Y, Z]
예상되는 출력은 12개의 조합이 있는 목록입니다:
[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]
솔루션
이 솔루션은 재귀를 활용하여 가능한 모든 조합을 생성합니다. 목록은 목록 목록에 저장되고 순열을 보유하기 위해 결과 목록이 생성됩니다. generatePermutations 메소드는 목록 목록, 결과 목록, 깊이 매개변수 및 현재 순열을 나타내는 문자열을 입력으로 사용합니다.
generatePermutations 메소드
<code class="java">void generatePermutations(List<List<Character>> lists, List<String> result, int depth, String current) { // Base case: if we've reached the end of the list of lists if (depth == lists.size()) { result.add(current); return; } // Get the current list at the specified depth List<Character> currentList = lists.get(depth); // Iterate over each element in the current list for (int i = 0; i < currentList.size(); i++) { // Recursively call generatePermutations to build permutations generatePermutations(lists, result, depth + 1, current + currentList.get(i)); } }</code>
generatePermutations 메소드에 대한 초기 호출은 깊이를 0으로 설정하고 현재 문자열을 빈 문자열로 설정합니다. 각 재귀 호출은 깊이를 증가시키고 현재 문자를 현재 문자열에 연결합니다. 깊이가 목록 수와 같을 때 기본 사례에 도달하고, 그 시점에서 현재 순열이 결과 목록에 추가됩니다.
generatePermutations 메소드는 재귀를 활용하여 다음의 가능한 모든 조합을 효과적으로 구성합니다. 입력 목록의 요소를 검색하여 결과 목록에 추가합니다. 이 솔루션은 효율적이며 입력 목록의 수나 길이에 관계없이 적응할 수 있습니다.
위 내용은 재귀를 사용하여 Java의 여러 목록에서 가능한 모든 조합을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!