算法问题,如果有人能指出我正确的方向,我今天似乎无法绕过头脑。感觉就像我已经可以解决的东西,我可以查找,但我很难找到它。
我有一些范围,我希望从这些范围中获得新的独特非重叠范围。例如:
[
[0] => [
'Min' => 5,
'Max' => 10
],
[1] => [
'Min' => 5,
'Max' => 12
],
[2] => [
'Min' => 13,
'Max' => 15
],
[3] => [
'Min' => 13,
'Max' => 18
],
[4] => [
'Min' => 20,
'Max' => 24
],
]
注意键2和4已更改不同修复重叠问题。
[
[0] => [
'Min' => 5,
'Max' => 10
],
[1] => [
'Min' => 11,
'Max' => 12
],
[2] => [
'Min' => 13,
'Max' => 15
],
[3] => [
'Min' => 16,
'Max' => 18
],
[4] => [
'Min' => 20,
'Max' => 24
],
]
注意19是不存在的,因为它不是任何原始范围内的数字。
我已经尝试过搜索,但似乎无法想出这种算法会被命名为什么,所以我得到了很多不相干的结果。
还要注意末尾的非范围是如何重叠并包含唯一的数字(以最小值或最大值为单位)。
谢谢,
答案 0 :(得分:1)
这就是我要做的事情:
usort
对数组条目进行排序。首先是Min升序,然后是Max降序。