双指针法
思路
获取到数组
1 先排序
2 根据条件 移动指针
3 多写判断
$arr = "57132984";
$res = [];
$len = strlen($arr);
$arr = str_split($arr);
sort($arr);
$start = 0;
$end = $len -1;
$data = [];
// 双指针
while(true){
if($arr[$start] + $arr[$end] > 10){
$end--;
}elseif($arr[$start]+$arr[$end] < 10){
$start++;
}else{
$data[]=[$arr[$start],$arr[$end]];
$end--;
$start++;
}
if($end - $start == 1 ){
break;
}
}
echo "<pre>";
print_r($data);

浙公网安备 33010602011771号