Étant donné un tableau, générez tous les sous-tableaux possibles du tableau donné en utilisant la récursivité. Cet article vous présentera comment utiliser PHP pour implémenter cette fonction.
Exemple :
输入:[1,2,3] 输出:[1],[1,2],[2],[1,2,3],[2,3],[3] 输入:[1,2] 输出:[1],[1,2],[2]
Méthode :
On utilise deux pointeurs start et end pour maintenir le début et la fin du tableau et suivre le ci-dessous Les étapes indiquées sont :
1. Si nous avons atteint la fin du tableau, arrêtez
2 Si le début est supérieur à la fin, augmentez l'index de fin
. 3. De l'index du début à la fin Imprimez le sous-tableau et incrémentez l'index de départ
Ce qui suit est un exemple d'implémentation de code PHP de la méthode ci-dessus :
<?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);
Sortie :
[1] [1,2] [2] [1,2,3] [2,3] [3]
Complexité temporelle :
Recommandations associées : "Tutoriel PHP"
Cet article est une introduction à la méthode de génération de sous-tableaux par récursivité en PHP, j'espère que cela sera utile aux amis dans le besoin !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!