用数组中的所有数字组合出最大的数,每个数字使用一次

/**
 *
 * 题目:用数组中的所有数字组合出最大的数,每个数字使用一次
 * 分析:排列组合遍历所有组合出来的数,始终维护一个最大数
 *
 */
$array = array(4, 91, 9, 8, 3, 11);

function get_max_num($array, & $max=0, $n){
	foreach($array as $key => $value){
		$a = $array;
		$num = $a[$key];
		$k = $n;
		$k .= $num;
		array_splice($a, $key, 1);
		//print_r($a);exit();
		if(count($a) > 0)
			get_max_num($a, $max, $k);
		else{
			$max =  $k > $max ? $k : $max;
		}
	}

	return $num;
}

get_max_num($array, $max, '');

echo $max; //99184311

转载请注明:小Y » 用数组中的所有数字组合出最大的数,每个数字使用一次

赞 (0) 评论 (0) 分享 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址