問題
後戻りアプローチ:
TC:(2^n) つまり、指数関数的な時間計算量 (再帰呼び出しごとに 2 つの選択肢が残されているため、つまり 'index' の値を考慮するか、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 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
