ホームページ バックエンド開発 PHPチュートリアル PHP は再帰を使用して部分配列を生成します (コード例)

PHP は再帰を使用して部分配列を生成します (コード例)

Mar 20, 2019 pm 02:31 PM
サブアレイ

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 は再帰を使用して部分配列を生成します (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Java では、指定されたクエリに基づいて配列を部分配列に分割した後、部分配列の最大部分配列合計を見つけます。 Java では、指定されたクエリに基づいて配列を部分配列に分割した後、部分配列の最大部分配列合計を見つけます。 Aug 29, 2023 am 11:21 AM

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++ を使用して、同じ最小値と最大値を持つ部分配列の数を見つけるコードを作成します。 C++ を使用して、同じ最小値と最大値を持つ部分配列の数を見つけるコードを作成します。 Aug 25, 2023 pm 11:33 PM

この記事では、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 未満である部分配列の数を求めます。 C++ で書かれており、合計が K 未満である部分配列の数を求めます。 Sep 07, 2023 pm 03:25 PM

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

C++ では、ゼロ XOR を使用してサブ配列の数を最大化します。 C++ では、ゼロ XOR を使用してサブ配列の数を最大化します。 Aug 28, 2023 pm 09:05 PM

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

最大公約数が 1 より大きい最長の部分配列 最大公約数が 1 より大きい最長の部分配列 Sep 18, 2023 pm 10:17 PM

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

C++ を使用して、合計が奇数の部分配列の数を見つけるコードを作成します。 C++ を使用して、合計が奇数の部分配列の数を見つけるコードを作成します。 Sep 21, 2023 am 08:45 AM

サブ配列は配列の連続した部分です。たとえば、配列 [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

C++ で書かれており、部分配列内の素数の数を見つけます。 C++ で書かれており、部分配列内の素数の数を見つけます。 Sep 01, 2023 am 08:37 AM

この記事では、部分配列内の素数の数を見つける方法について説明します。範囲 {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++ を使用して、指定された範囲内の合計を持つ部分配列の数を見つけるプログラムを作成します。 C++ を使用して、指定された範囲内の合計を持つ部分配列の数を見つけるプログラムを作成します。 Sep 01, 2023 pm 02:37 PM

この記事では、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}.検索

See all articles