给定一个数组,运用递归生成给定数组的一切能够的子数组。本篇文章就将给人人引见如何用PHP来完成此功用。
例子:
输入:[1,2,3] 输出:[1],[1,2],[2],[1,2,3],[2,3],[3] 输入:[1,2] 输出:[1],[1,2],[2]
要领:
我们运用两个指针start和end来保护数组的出发点和尽头,并按照下面给出的步骤操纵:
1.假如我们已抵达数组的末端,就住手
2.假如start大于end,则增添完毕索引
3.从索引start到end打印子数组并增添肇端索引
以下是上述要领的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运用递归生成子数组(代码实例)的细致内容,更多请关注ki4网别的相干文章!