PHP は再帰を使用して部分配列を生成します (コード例)
配列が指定された場合、再帰を使用して、指定された配列の可能なすべての部分配列を生成します。この記事では、PHP を使用してこの機能を実装する方法を紹介します。
例:
输入:[1,2,3] 输出:[1],[1,2],[2],[1,2,3],[2,3],[3] 输入:[1,2] 输出:[1],[1,2],[2]
メソッド:
2 つのポインタ start と end を使用して、配列の開始点と終了点を維持します。以下に示します。ステップ操作:
1. 配列の末尾に到達した場合は、停止します
2. start が end より大きい場合は、終了インデックスを増やします
3. Startインデックスから部分配列を終了まで出力し、開始インデックスをインクリメントします
以下は、上記のメソッドの PHP コード実装の例です:
<?php // 使用递归函数为给定数组打印所有可能的子数组 function printSubArrays($arr, $start, $end) { // 如果我们已经到达数组的末尾,就停止 if ($end == count($arr)) return; // 增加端点并从0开始 else if ($start > $end) return printSubArrays($arr, 0, $end + 1); // 打印子数组并增加起始点 else { echo "["; for($i = $start; $i < $end + 1; $i++) { echo $arr[$i]; if($i != $end) echo ", "; } echo "]\n"; return printSubArrays($arr, $start + 1, $end); } } $arr = array(1, 2, 3); printSubArrays($arr, 0, 0);
出力:
[1] [1,2] [2] [1,2,3] [2,3] [3]
時間計算量のプロパティ:
関連する推奨事項: 「PHP チュートリアル 」
この記事は、再帰を使用して生成する方法の紹介です。 PHP のサブ配列。それが必要な友人の役に立てば幸いです。役に立ちます!
以上がPHP は再帰を使用して部分配列を生成します (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











2 つの整数配列があり、1 つは計算された要素を含み、もう 1 つは配列を分割してサブセットを生成するために必要な分割点を含みます。分割ごとに各サブセットの合計を計算し、最大のサブセットを返す必要があります。例を見てみましょう理解: - input -intarr[]=intarr[]={9,4,5,6,7}intsplitPoints[]={0,2,3,1}; Output - 各分割後の最大部分配列合計 [ 22, 13,9,9] 説明 - ここでは、分割点に従って配列を分解し、各分割後と最初の分割後の最大サブセットを取得します → {9} と {4,5,6,7 }>>最大合計2 番目の分割後の部分配列の数は -22 → {9},{4

この記事では、C++ を使用して、最大値と最小値が同じ部分配列の数を求める問題を解決します。以下は問題の例です。 -入力:array={2,3,6,6,2,4,4,4}出力:12説明:{2},{3},{6},{6}, {2 }、{4}、{4}、{4}、{6,6}、{4,4}、{4,4}、および {4,4,4} は、同じ最大要素と最小要素で形成できるサブ配列です。入力: 配列 = {3, 3、1、5、

この記事では、C++ を使用して合計が K 未満の部分配列の数を求めます。この問題では、配列 arr[] と整数 K があります。次に、合計が K より小さい部分配列を見つける必要があります。これは、解決策を見つけるための例です。 −Input:arr[]={1,11,2,3,15}K=10Output:4{1},{2},{2,3}与えられた問題を解決するために 2 つの異なるアプローチが使用されます - ブルートフォース このアプローチでは、すべてのサブ配列を反復処理してそれらの合計を計算し、合計が k 未満の場合は k と比較して答えを増やします。例#include<

整数値を含む配列 Arr[] を取得します。目標は、XOR が 0 であるサブ配列の最大数を見つけることです。サブ配列のビットは何度でも交換できます。注: -1

配列は、隣接するメモリ位置に連続的に格納された同様のデータの集合です。オフセット値をデータベースの特定の基本値として定義すると、各要素の特定の位置を評価しやすくなります。その特定のインデックスの基本値はゼロで、オフセット値は 2 つの特定のインデックスの差です。サブ配列は特定の配列の一部であり、複数の値でラベル付けされた変数のセットとして定義できます。最長の部分配列とは、配列内のすべての要素が K より大きい配列を指します。ここで、最大合計部分配列の合計は、指定されたデータ セット内の指定されたデータ セット以下になります。データセット内で 1 未満の値が与えられた最長の部分配列の長さを見つけるには、特定の部分配列内の 1 の合計数を見つけるだけで済みます。注: カウントはゼロのカウントより大きくなければなりません。最大公約数とは、次のような数学的現象です。

サブ配列は配列の連続した部分です。たとえば、配列 [5,6,7,8] を考えると、(5)、(6)、(7)、(8)、(5,6)、などの 10 個の空ではないサブ配列があります。 (6, 7)、(7,8)、(5,6,7)、(6,7,8)、(5,6,7,8)。このガイドでは、奇数の合計を持つ部分配列の数を見つけるために C++ で考えられるすべての情報を説明します。奇数和の部分配列の数を見つけるには、さまざまな方法を使用できます。ここでは簡単な例を示します。入力:配列={9,8,7,6,5}出力:9説明:Sumofsubarray-{9}= 9{7

この記事では、部分配列内の素数の数を見つける方法について説明します。範囲 {l,R} を表す 2 つの整数を含む正の数の配列 arr[] および q クエリがあり、指定された範囲内の素数の数を見つける必要があります。以下は、指定された問題の例です - 入力:arr[]={1,2,3,4,5,6},q=1,L=0,R=3出力:2Inthegivenrangetheprimesare{2,3}.Input: arr []={2,3,5,8,12,11},q=1,L=0,R=5出力:4指定された範囲内の素数は{2,3,5です

この記事では、C++ プログラムを使用して、合計が指定された範囲内にある部分配列の数を見つけます。正の整数の配列 arr[] と範囲 {L,R} があり、合計が指定された範囲 L から R 内に収まる部分配列の総数をカウントする必要があります。ここで問題の簡単な例を示します。Input:arr[]={1,4,6},L=3,R=8Output:3Thesubarraysare{1,4},{4},{6}.Input:arr [ ]={2,3,5,8},L=4,R=13出力:6サブ配列は{2,3}、{2,3,5}、{3,5}、{5}、{5,8です} ,{8}.検索
