XuLaLa.Tech

首页客户端下载Windows 使用V2Ray 教程SSR 教程Clash 教程

一道百度算法面试题:区间集合合并

2025.04.09

百度的面试过程中经常会出现现场算法的实现,这个算法可能是一个不负责的算法,考察现在编码的能力,所以不用担心,只有你冷静下来一定实现出来,记得一定要用自己最熟悉的语言。

以下这道区间合并算法题,来源一个朋友百度的一面:

PHP编码实现:

<?php
//$data=[[1,3],[2,6],[8,10],[15,18]];
//$data = [[1,3],[2,6]];
//$data = [[1,4],[4,5]];
$data = [[1,10], [2,6]];
if (!is_array($data)|| empty($data)) {
return [];
}
//filter array
$data = array_filter($data, function($item) {
return !empty($item);
});
//sort array
usort($data, function($a, $b){
return $a[0] > $b[0];
});
$resutls = [];
$current = array_shift($data);
while(!empty($data)) {
$next = array_shift($data);
list($curMin, $curMax) = $current;
list($nextMin, $nextMax) = $next;
if ($curMax >= $nextMin) {
$current = [min($curMin, $nextMin), max($curMax,$nextMax)];
} else {
$results[] = $current;
$current = $next;
}
}
$results[] = $current;
print_r($results);
© 2010-2022 XuLaLa 保留所有权利 本站由 WordPress 强力驱动
请求次数:69 次,加载用时:0.665 秒,内存占用:32.19 MB