1. 概述
给出一个区间的集合,请合并所有重叠的区间。
2. 解题
<?phpclass Solution {/*** @param Integer[][] $intervals* @return Integer[][]*/public function merge($intervals) {$intervals = $this->arrayMultiSort($intervals);for ($i = 1; $i <= count($intervals); $i++) {$pre = $intervals[$i - 1];$my = &$intervals[$i];if ($pre[1] < $my[0]) {continue;}if ($pre[1] >= $my[1]) {unset($intervals[$i]);continue;}$my[0] = $pre[0];unset($intervals[$i - 1]);}return $intervals;}public function arrayMultiSort($intervals) {$array1 = [];foreach ($intervals as $k => $v) {$array1[] = $v[0];}array_multisort($array1, SORT_ASC, $intervals);return $intervals;}}$intervals = [[8,10],[1,3],[2,6],[15,18]];$cls = new Solution();$r = $cls->merge($intervals);print_r($r);
