Javascript 从成员的google文档生成计划';可利用性

Javascript 从成员的google文档生成计划';可利用性,javascript,algorithm,google-apps-script,google-sheets,Javascript,Algorithm,Google Apps Script,Google Sheets,我有一个GoogleDoc电子表格,其中包含一个团队中每个成员在一周中的特定时间可以会面的信息。一周内需要召开多次会议,小组中的不同成员需要参加某些会议。我需要一种基于此生成时间表的方法,以便大多数成员都能参加每次会议。所有会议都不能在同一时间段内举行 该表包含发生的每个会议的一行。每列代表一个时间段(如周一下午6:30-8:00),会议可以在该时间段内举行。与特定会议和特定时间段相对应的单元格包含一个数字,表示可以参加每次会议的人数。如果该单元格包含的数字与注册参加会议的成员数相同,则goog

我有一个GoogleDoc电子表格,其中包含一个团队中每个成员在一周中的特定时间可以会面的信息。一周内需要召开多次会议,小组中的不同成员需要参加某些会议。我需要一种基于此生成时间表的方法,以便大多数成员都能参加每次会议。所有会议都不能在同一时间段内举行

该表包含发生的每个会议的一行。每列代表一个时间段(如周一下午6:30-8:00),会议可以在该时间段内举行。与特定会议和特定时间段相对应的单元格包含一个数字,表示可以参加每次会议的人数。如果该单元格包含的数字与注册参加会议的成员数相同,则google docs会自动突出显示该单元格

我试图通过使用GoogleDocs的脚本功能来解决这个问题,但是我很难找到算法。我真正需要的是一些伪代码,我可以编写它

假设在我的脚本中,我有一个二维单元格数组,以及一个二维布尔数组,该数组对应于单元格是否高亮显示(这意味着最多的成员可以出席)

下面是该表的示例:

|Meeting    |Mon 6:30-8:30pm |Mon 8:30-10:30pm |Tue 6:30-8:30pm |Tue 8:30-10:30pm |
|-----------|----------------|-----------------|----------------|-----------------|
|Meeting 1  |7               |9                |8               |6                |
|Meeting 2  |3               |5                |1               |4                |
|Meeting 3  |10              |15               |12              |8                |
|-----------|----------------|-----------------|----------------|-----------------|

谢谢你的帮助

假设我理解你的意思,你必须先选择会议安排的顺序。我能想到的最好的办法是,考虑到听起来其他一切都是平等的,从简单地选择大多数人都能参加的会议开始:

firstScheduled = max(max(meeting1), max(meeting2), max(meeting3));
之后,查看剩余的会议,看看在当前计划外的几天中,哪一个会议的出席率最高:

foreach meeting as m
    foreach day as d
        if d is currently scheduled
            m = 0  // set all attendees to 0; no one can come, since the'll be
                   // at the other meeting
        end if
    end for

    highestAttendanceDate = max(meeting1)
end for

然后再重复一遍,直到所有会议都安排好。

效果非常好。下面是javascript的最终代码,感谢您的帮助!