最近遇到一个算法问题,请各位大佬看看
正题
$array = [1,2,3,4,5,6,7,8];
$list = [
[7,8,6,2,4],
[7,1,2,3],
[4,5,6,8],
[6,7,8,1],
[3,5,8]
];
说明: $list 里面的数据不固定,但是一定会包含 $array 里面的所有项。
结果: 需要得出类似于这种 :
$list = [
0 => [7,8,6,2,4],
1 => [1,3],
2 => [5]
];
$list = [
1 => [7,1,2,3],
2 => [4,5,6,8]
];
去除原$list 里面各项的重复值,重新生成不重复的$list数据,使得新的$list既包含原有数据,又个项不重复。
需要计算出满足条件的所有结果出来。
解释
题目可以理解为,我要去买几样东西,每样东西只买一件。
$array = [1,2,3,4,5,6,7,8]; // 要买的东西的数组
然后,附近有几个超市, 每个超市都卖其中几样。
$list = [
'a' => [7,8,6,2,4],
'b' => [7,1,2,3],
'c' => [4,5,6,8],
'd' => [6,7,8,1],
'e' => [3,5,8]
]; // 生成5个超市,每个超市只卖其中几种东西
问:我要买齐我所需要的东西,有多少种购买方式,分别是什么? 例如:
//举例其中一种购买方式
$list = [
'a' => [7,8,6,2,4], // 在a里买 7 8 6 2 4
'b' => [1,3], // 在b里买1 3
'c' => [5] // 在c里买 5
];