由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 继续发刚才的面经 (既 remove duplicate 之后)的scheduling prolem
相关主题
amazon tel interview弯曲中型IT公司面经
Amazon 最新Offer+面经bloomberg 面经
bloomberg 面经MathWorks 面经
Facebook 面经报google nyc offer,并分享面经
PA Consulting面经,顺便有没有了解这个公司的?MS Onsite面经
Deutsche Bank 面经攒RP, 发N的面经
amazon onsite 面经A家新鲜面经--都是经典题
面经彭博电面面经
相关话题的讨论汇总
话题: time话题: room话题: start话题: prolem话题: rooms
进入JobHunting版参与讨论
1 (共1页)
l*********i
发帖数: 28
1
面试官问design algorithm,去schedule课程表,学校有n个rooms,给你所有课程的
schedule,让我排出课表怎样不time conflict?
好像感觉是dynamic programming,又好像Integer Linear Programming 的优化问题,
请问怎么破?
e********2
发帖数: 495
2
什么公司?

【在 l*********i 的大作中提到】
: 面试官问design algorithm,去schedule课程表,学校有n个rooms,给你所有课程的
: schedule,让我排出课表怎样不time conflict?
: 好像感觉是dynamic programming,又好像Integer Linear Programming 的优化问题,
: 请问怎么破?

d******v
发帖数: 801
3
这题leetcode原题
l*********i
发帖数: 28
4
leetcode 里是课程 prerequisite 的题,这个是schedule到rooms with no blame.

【在 d******v 的大作中提到】
: 这题leetcode原题
h******6
发帖数: 2697
5
topological sort?
j***y
发帖数: 1640
6
greedy algorithm.
先把课程排序。 最早结束的排前面。
PriorityQueue hold N LinkedList (# of classroom),最早空出的排前面。
先把前 N 课放进去。
loop:
popout a node , add new course to it, push it back,
c*****m
发帖数: 271
7
如果是假设最优解不会导致conflict的话,可以用贪心吧?课程按开始结束时间排序,
然后把所有教室的(available starttime, id)放在priority queue里面。对于排好
序的每一个课程,分配给queue头的教室(有最小的starttime),将该教室的开始时间
更新为该课程的endtime。错了请拍!
如果不管怎样排都有conflict就不知道怎么搞了
c*******t
发帖数: 123
8
凡是在版上问leetcode原题的,都应该打屁屁。

【在 l*********i 的大作中提到】
: 面试官问design algorithm,去schedule课程表,学校有n个rooms,给你所有课程的
: schedule,让我排出课表怎样不time conflict?
: 好像感觉是dynamic programming,又好像Integer Linear Programming 的优化问题,
: 请问怎么破?

l*******e
发帖数: 127
9
跟LC 上的meeting schedule 2类似吧,那个求需要几个room.

面试官问design algorithm,去schedule课程表,学校有n个rooms,给你所有课程的
schedule,让我排出课表怎样不time conflict?好像感觉........

【在 l*********i 的大作中提到】
: 面试官问design algorithm,去schedule课程表,学校有n个rooms,给你所有课程的
: schedule,让我排出课表怎样不time conflict?
: 好像感觉是dynamic programming,又好像Integer Linear Programming 的优化问题,
: 请问怎么破?

y*********e
发帖数: 518
10
当怎么排都有conflict的时候就抛异常呗。代码如下:
struct class {
int class_id;
int start_time;
int end_time;
}
// sort by start_time
struct room {
int available_start_time;
vector class_ids;
}
// sort by available_start_time
vector find_scheduling(
vector rooms,
vector classes) {
priority_queue rq(rooms.begin(), rooms.end());
priority_queue cq(classes.begin(), classes.end());
while (!cq.empty()) {
const class& c = cq.dequeue();
for (room& r : rq) {
if (r.available_start_time >= c.start_time) {
rq.dequee(r);
r.available_start_time = c.end_time;
r.class_ids.push_back(c.class_id);
rq.enqueue(r);
continue;
}
}
throw ‘no room available’;
}
return vector(rq.begin(), rq.end());
}
我们把输入的rooms和classes都按照start_time排序好了。
通过greedy解出来的一定就是最优解。

【在 c*****m 的大作中提到】
: 如果是假设最优解不会导致conflict的话,可以用贪心吧?课程按开始结束时间排序,
: 然后把所有教室的(available starttime, id)放在priority queue里面。对于排好
: 序的每一个课程,分配给queue头的教室(有最小的starttime),将该教室的开始时间
: 更新为该课程的endtime。错了请拍!
: 如果不管怎样排都有conflict就不知道怎么搞了

1 (共1页)
进入JobHunting版参与讨论
相关主题
彭博电面面经PA Consulting面经,顺便有没有了解这个公司的?
g电面 详细面经Deutsche Bank 面经
微软sdet onsite面经amazon onsite 面经
ZocDoc Skype 面经 (update:已经悲剧)面经
amazon tel interview弯曲中型IT公司面经
Amazon 最新Offer+面经bloomberg 面经
bloomberg 面经MathWorks 面经
Facebook 面经报google nyc offer,并分享面经
相关话题的讨论汇总
话题: time话题: room话题: start话题: prolem话题: rooms