回复: 68
跳转到指定楼层
上一主题 下一主题
收起左侧

AMAZON OA2 新的一个coding题!!!

 
全局:

2015(7-9月) 码农类General 硕士 全职@amazon - 猎头 - 在线笔试  | | Pass | 应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
OA2 重点想说下code的一个题,真的是个大坑啊。。。。做了半天还是有bug,不过为了造福地里的同学。特地截了图,不过太大不让传 = =。希望对大家有帮助。是robin wait time。
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
ong>补充内容 (2015-11-17 08:06):
图在124,125楼。

评分

参与人数 24大米 +156 收起 理由
LewsTherin + 3 谢谢
ralph + 5 很有用的信息!
1亩3分地er + 3 给你点个赞!
WishUponAStar + 50 给你点个赞!
dianalh1212 + 3 坚持的不错,再接再厉!

查看全部评分


上一篇:LiveRamp15分钟店面
下一篇:google店面

本帖被以下淘专辑推荐:

 楼主| novac812 2015-11-17 08:06:25 | 只看该作者
全局:
第二个图,发在这里啦。

本帖子中包含更多资源

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x

评分

参与人数 1大米 +3 收起 理由
liqingfd + 3 感谢分享!

查看全部评分

回复

使用道具 举报

推荐
DWill008 2015-11-16 10:30:42 | 只看该作者
全局:
熊亮亮111 发表于 2015-11-16 09:49
我也是这么理解的,然后第10秒的时候完成 p3  但是这样的话应该是10/3=3.3333333啊  而不是2.333333.

我是这么理解的,有不对的地方请指出
我拿贴子里面给出的例子来说明下吧。
【0,1,4】 【5,2,3】 q = 3

第0秒,任务1进队列。我们peek目前队列中有的任务是任务1,我们发现任务1开始时间第0秒,目前也是第0秒,所以任务1等待时间是0。然后任务1执行3秒,它自身还有2秒钟。
这时候我们查看3秒的时候哪些任务达到了,发现任务2在第1秒到达。于是任务2进队列。
这时候我们查看任务1有没有执行完,发现没有执行完,于是我们poll任务1,再把任务1 add到队列末尾。
这时候队列的顺序是任务2,任务1.

现在我们再次peek队列,于是找到任务2.我们发现任务2在第1秒到达了,目前我们在第3秒。所以等待时间是3-1=2.
我们重复刚刚的步骤,发现任务2执行时间只要2秒,于是我们到第5秒。这时候我们查找第5秒哪些任务到达了。我们发现任务3也到达了。于是任务3进队列。
所以目前队列顺序是任务2,任务1,任务3.
我们又发现任务2已经执行完了,于是
您好!
本帖隐藏的内容需要积分高于 155 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 155 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
所以等待时间又加3秒。
所以最终等待时间是2+2+3 = 7秒。平均等待时间是7/3 = 2.3333秒。

评分

参与人数 3大米 +15 收起 理由
xiongzheng + 2 感谢分享!
Camphorliage + 3 感谢分享!
ryanli + 10 感谢分享!

查看全部评分

回复

使用道具 举报

推荐
dwl1222 2015-9-25 06:36:11 | 只看该作者
全局:
public class process {
        int arriveTime;
        int excuteTime;
        process(int arr, int exc) {
                arriveTime = arr;
                excuteTime = exc;
        }
}

// Assume arrive is sorted.
public double roundRobin(int[] arrive, int[] excute, int q) {
        LinkedList<process> queue = new LinkedList<>();
        int curTime = 0;
        int waitTime = 0;
        int nextProIdx = 0;
        while (!queue.isEmpty() || nextProIdx < arrive.length) {
                if (!queue.isEmpty()) {
                        process cur = queue.poll();
                        waitTime += curTime - cur.arriveTime;
                        curTime += Math.min(cur.excuteTime, q);
                        for (int i = nextProIdx; i < arrive.length; i ++) {
                                if (arrive[i] <= curTime) {
                                        queue.offer(new process(arrive[i], excute[i]));
                                        nextProIdx = i + 1;
                                } else {
                                        break;
                                }
                        }
                        if (cur.excuteTime > q) {
                                queue.offer(new process(curTime, cur.excuteTime - q);
                        }
                } else {
                        queue.offer(new process(arrive[nextProIdx], excute[nextProIdx]));
                        curTime = arrive[nextProIdx ++];
                }
        }
       
        return (double)waitTime / arrive.length;
}
回复

使用道具 举报

推荐
rosalind324 2015-11-24 11:09:30 | 只看该作者
全局:
https://www.youtube.com/watch?v=aWlQYllBZDs

这里有视频介绍的很清楚!Round Robin Algorithm Tutorial (CPU Scheduling)

评分

参与人数 2大米 +20 收起 理由
tianqing705 + 5 谢谢你的介绍!
pengzewen37 + 15 回答的很好!

查看全部评分

回复

使用道具 举报

🔗
wenqiang88 2015-9-22 13:29:43 | 只看该作者
本楼:
全局:
q是啥意思?
回复

使用道具 举报

无效楼层,该帖已经被删除
🔗
DWill008 2015-9-23 00:21:54 | 只看该作者
全局:
请问lz,arrival time这个数组给你的时候都是排好序的吗?
还有,你说的non-pre是指,每隔q个时间,任务会自动切换,还是说即使在q时间内,只要有一个execution time比当前执行任务剩余时间更短的任务到达,当前任务也会被切换掉?

补充内容 (2015-9-23 02:50):
再问下lz,[0,1,4] [5,2,3] q = 3的average wait time 答案 2.33333 是OA给的吗?
回复

使用道具 举报

🔗
DWill008 2015-9-23 00:30:55 | 只看该作者
全局:

q是指quantum,round robin的算法每隔quantum个时间都会强制切换到下一个任务,如果当前任务没有执行完的话。
回复

使用道具 举报

🔗
wenqiang88 2015-9-23 06:48:57 | 只看该作者
全局:
DWill008 发表于 2015-9-23 00:30
q是指quantum,round robin的算法每隔quantum个时间都会强制切换到下一个任务,如果当前任务没有执行完的 ...

哦,明白啦,多谢LZ
回复

使用道具 举报

🔗
 楼主| novac812 2015-9-23 07:28:25 | 只看该作者
全局:
恩啊,我的例子是OA里面给的例子。
回复

使用道具 举报

无效楼层,该帖已经被删除
🔗
miyaha 2015-9-23 13:54:48 | 只看该作者
全局:
多谢楼主分享啊! 马上也要做oa2了。。。可是我算出来的是2.666啊。。。
回复

使用道具 举报

无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表