双指针法

思路

获取到数组
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);
posted @ 2021-04-29 10:32  野香蕉  阅读(49)  评论(0)    收藏  举报