我又来套方案了,有个php数组数据处理问题,请问大家有没有好的方案
例子如下
$groups = [
'a' => [1, 2, 3, 4],
'b' => [2, 3],
'c' => [2, 5, 6, 7],
'd' => [7,9,10],
];
结果
$group = [
'a' => [1,4],
'c' => [5,6],
'd' => [9,10],
'a_more' => [2,3],
'c_more' =>[7],
];
例子举的少,实际上会出现二十个左右分组,每组数据数量几十到一两万左右,要将当前key下的数组分成在其他组出现过和只在当前组出现过的两组数据,且出现过的同时在其他组也会被unset掉,不会出现重复数据,怎么处理开销会小一些
想到一个时间复杂度 f(n), 空间复杂度 f(n) 的算法
用一个数组记录首次出现的位置,处理后将其标记为 true, 详细看代码