Algorithm 安排会议问题(根据投资者的可用性计算所有者可以安排多少次会议)

Algorithm 安排会议问题(根据投资者的可用性计算所有者可以安排多少次会议),algorithm,function,Algorithm,Function,我试图解决这项任务,这听起来像是“考虑到投资者的日程安排,确定业主可以安排多少次会议”。老板正在寻找新的投资者为他的公司筹集资金。业主必须遵守投资者的时间表。请注意,所有者每天只能有一次会议 计划由两个整数数组组成,第一天和最后一天。数组firstDay中的每个元素表示投资者可用的第一天,lastDay中的每个元素表示投资者可用的最后一天,两者都包括在内 示例: 第一天=[1,2,3,3,3] lastDay=[2,2,3,4,4] 共有5名投资者[i0、i1、i2、i3、i4] 投资者i0从

我试图解决这项任务,这听起来像是“考虑到投资者的日程安排,确定业主可以安排多少次会议”。老板正在寻找新的投资者为他的公司筹集资金。业主必须遵守投资者的时间表。请注意,所有者每天只能有一次会议

计划由两个整数数组组成,第一天和最后一天。数组firstDay中的每个元素表示投资者可用的第一天,lastDay中的每个元素表示投资者可用的最后一天,两者都包括在内

示例:

第一天=[1,2,3,3,3]

lastDay=[2,2,3,4,4]

共有5名投资者[i0、i1、i2、i3、i4]

  • 投资者i0从第1天到第2天(含第2天)可用[1,2]
  • 投资者i1仅在第2天可用[2,2]
  • 投资者i2仅在第3天可用[3,3]
  • 投资者i3和i4仅在第3天至第4天提供[3,4]
所有者只能会见5名投资者中的4名:第一天为i0,第二天为i1,第三天为i2,第四天为i3。下图以绿色显示计划的会议,以灰色显示被阻止的日期

一个图形显示计划的会议

任务是实现一个函数,该函数将2个整数列表作为输入参数,并返回表示可能的最大会议次数的整数结果

约束

  • 数组长度-大于或等于1,小于或等于100000
  • 第一天[i],最后一天[i]大于或等于1且小于或等于100000(i大于或等于0且小于n)
  • 第一天少于或等于最后一天
我对这项任务的执行情况如下:

public static int countMeetings(List<int> firstDay, List<int> lastDay)
{
     var count = 0;   
     count = firstDay.Concat(lastDay).Distinct().Count();
     if (count > firstDay.Count)
     {
        count = firstDay.Count;
     }
     return count;
}
public static int countMeetings(第一天列出,最后一天列出)
{
var计数=0;
count=firstDay.Concat(lastDay.Distinct().count();
如果(计数>第一天.计数)
{
计数=第一天。计数;
}
返回计数;
}
该代码成功通过了提供的12个测试中的8个。因此,如果你给我一个测试数据的例子,在这个例子中,我的函数将返回一个不正确的结果,或者为我提供正确的解决方案,这对我真的很有帮助。谢谢你的建议。

谢谢你的意见 第一天=[1,1,1] 最后一天=[5,5,5]


代码返回2,但正确答案为3

示例输入非常简单。假设你每天有10天的时间和5个投资者。你会有很多组合。你好@jdweng!谢谢你的回答。但我不确定我是否明白你的意思。例如第一天=[1,2,1,3,4]。lasDay=[10,11,10,12,13]。在这种情况下,函数将返回5,这是正确答案。我重新阅读了问题。答案是最大会议次数。我认为这是一个组合问题,你需要获得不同的拜访客户顺序。我认为这与旅行推销员问题有关,每天你选择一个可用的投资者,然后在第二天继续剩余的投资者,试图最大限度地增加所选投资者的数量。也许是回溯法。这是答案吗?嗨,格林。是的,这是输入,我的功能无法正常工作。我可以把它标记为答案,但我仍然不知道正确的答案。谢谢另外,我试着接受它,但没有足够的声誉来改变帖子的分数。