有1个候选人需要被n个面试官面试,因此需要n个连续的时间段,下表展示了四个时间段(S1,S2,S3,S4)内四个面试官(I1,I2,I3,I4)的可用性情况。表中的1表示相应的面试官在相应的时间段内可用。
例如,第一个面试官I1在时间段S1和S2可用。
每个面试官只能进行一次面试,并且所有四个时间段应按顺序进行,如S1->S2->S3->S4
找到每个时间段中面试官的所有可能组合。 以下是其中一个示例:
算法: 我们以三个集合为例(dig和algo不同)。
例如,第一个面试官I1在时间段S1和S2可用。
每个面试官只能进行一次面试,并且所有四个时间段应按顺序进行,如S1->S2->S3->S4
找到每个时间段中面试官的所有可能组合。 以下是其中一个示例:
算法: 我们以三个集合为例(dig和algo不同)。
s1 = array("I1","I2","I3")
s2 = array("I1","I2")
s3 = array("I2","I3")
interviewr_slot = array('slot1'=>s1,'slot2'=>s2,'slot3'=>s3,'slot4'=>null)
count = 3 //it can be any
stack = array()
possibility = array()
traced = array();
myoutput = rec_function(interviewr_slot)
function rec_func($interviewr_slot){
static slot = 0;
slot++;
possibility = interviewr_slot['slot']
if(possibility != null)
{
push(stack,traced)
reset(our_input);
our_input = array();
for( i = slot; i<= n+1, i++)
{
our_input[sloti] = si;
}
foreach(possibility as k=>v)
{
if(!in_array(v, trace))
{
array_push(traced, v)
rec_func(our_output)
}
}
}
else
{
push(output_array,traced)
}
slot--
traced = pop(stack)
our_output = json.stringify(output_array)
return our_output
}