문제
역추적 접근 방식:
TC:(2^n) 즉, 지수적 시간 복잡도(모든 재귀 호출에서 두 가지 선택이 남아 있기 때문에 즉, '인덱스'의 값을 고려하거나 2개의 가능한 결과로 이어지지 않는 것 중 하나를 선택해야 하므로 이는 n번 동안 발생합니다)
SC:(2^n)*(n), 임시 ArrayList()의 경우 n, 기본 ArrayList();
의 경우 2^n
class Solution { public List<list>> subsets(int[] nums) { List<list>> list = new ArrayList(); powerSet(nums,0,list,new ArrayList<integer>()); return list; } public void powerSet(int [] nums, int index , List<list>> list, List<integer> l){ //base case if(index ==nums.length){ list.add(new ArrayList(l)); return; } //take l.add(nums[index]); //consider the value at 'index' powerSet(nums,index+1,list,l); //dont take; l.remove(l.size()-1);// don't consider the value at 'index' powerSet(nums,index+1,list,l); } } </integer></list></integer></list></list>
비트 조작 사용:
TC: O(2^n)*n
SC: O(2^n)*n, (메인 목록의 경우 2^n, 하위 집합 목록의 경우 n, 모든 하위 집합의 크기가 n인 것은 아니지만 그래도 그렇다고 가정할 수 있습니다)
전제 조건: i번째 비트가 설정되어 있는지 확인하세요(자세한 내용은 비트 조작 팁 및 요령 페이지 참조)
직관:
모두 아니오라면 . 하위 집합은 이진 값으로 표시됩니다.
예: n = 3인 경우, 즉 3개의 값을 갖는 배열입니다.
2^n = 8개의 하위 집합이 있습니다
8개의 하위 집합은 다음과 같이 나타낼 수도 있습니다.
index 2 | index 1 | index 0 | subset number |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 2 |
0 | 1 | 1 | 3 |
1 | 0 | 0 | 4 |
1 | 0 | 1 | 5 |
1 | 1 | 0 | 6 |
1 | 1 | 1 | 7 |
비트 값이 1이면 하위 집합을 형성할 때 nums[]의 해당 인덱스 값을 고려해야 한다는 점을 고려하겠습니다.
이렇게 하면 모든 하위 집합을 만들 수 있습니다
class Solution { public List<list>> subsets(int[] nums) { List<list>> list = new ArrayList(); int n = nums.length; int noOfSubset = 1 l = new ArrayList(); for(int i =0;i<n for the given subset number find which index value to pick if l.add list.add return list> </n></list></list>
위 내용은 전력 세트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
