一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 985|回复: 14
收起左侧

Coursera OA

[复制链接] |试试Instant~ |关注本帖
zifanzzz 发表于 2016-9-29 10:16:23 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@Coursera - 网上海投 - 在线笔试 |Other在职跳槽

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
刚刚做完的 coursera new grad software engineer challenge... 一共两道题,50分钟。我用的java 7。
第一题读题就读了10分钟,给三个input,第一个int n,第二个array a,第三个是array b。
一共是从 1 - n 个任务,a 和 b 表示 要完成任务 a 必须要先完成 任务 a[b]。最后返回能完成的任务数量。
其中a和b的长度 m: 0 ≤ m ≤ n, a 和 b: 1 ≤ a ≤ n  1 ≤ b ≤ n。

比如 n = 2, a = {}, b = {} 返回2。因为任务1和2都没有限制条件。
n = 2, a = {1}, b = {2} 返回2。因为可以先做2再做1。
n = 2, a = {1, 2}, b = {2, 1} 返回1。因为在i = 0时候a = 1,b = 2。需要先做任务2。做完任务2时回来看任务1,发现在i = 1时候,做任务1之后才能完成任务2,然而任务2已经做完了无法完成任务1。所以只有任务2可以做。. 1point3acres.com/bbs

第二题是给一个string array。每个string是一个人名,前面一部分是首字母大写的英文名字,后一部分是罗马数字,让根据前半部分名字子母表排序,如果前半部分相同则按罗马数字大小排序。-google 1point3acres

第二题我很轻松写出来了,做第一题各种告诉我index out of bound。有人有什么思路么。
第一题我是这么写的:

if (a == null || a.length < 2) {
    return n;. 鍥磋鎴戜滑@1point 3 acres
}
int count = 0;
for (int i = 0; i < a.length; i++) {
    if (a != 0) {
        a[b - 1] = 0;
        count++;
    }
}
return count;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴







补充内容 (2016-9-29 12:10):
我打错了- -我当时写的是a[b - 1]
ychenbf 发表于 2016-9-29 12:08:46 | 显示全部楼层
不太懂第一题的意思 请问楼主有图吗

话说b是array,
a[b - 1] = 0; <----- 这应该会有error吧? (我不熟java orz)
回复 支持 反对

使用道具 举报

 楼主| zifanzzz 发表于 2016-9-29 12:10:50 | 显示全部楼层
ychenbf 发表于 2016-9-29 12:08
不太懂第一题的意思 请问楼主有图吗

话说b是array,

我忘了截图了。。。特别长的描述。我也是读了十几分钟的题。。先做的第二个再回来的
回复 支持 反对

使用道具 举报

 楼主| zifanzzz 发表于 2016-9-29 12:18:57 | 显示全部楼层
a[b[i] - 1]为什么打不出来啊
回复 支持 反对

使用道具 举报

iwannabxm 发表于 2016-10-1 01:11:00 | 显示全部楼层
没太懂第一题诶。。。。。什么叫必须要先完成任务a[b]?
回复 支持 反对

使用道具 举报

zzhgetfuture 发表于 2016-10-1 01:20:27 | 显示全部楼层
看不太懂楼主第一题的描述哎
回复 支持 反对

使用道具 举报

 楼主| zifanzzz 发表于 2016-10-1 01:32:20 | 显示全部楼层
iwannabxm 发表于 2016-10-1 01:11. 1point 3acres 璁哄潧
没太懂第一题诶。。。。。什么叫必须要先完成任务a?

我当时也读了半小时,题目超级长,大意就是在index i这个位置。你如果要完成任务a就必须要先完成任务b。。。如果你发现任务b已经完成了,辣么a就无法完成。。。让最后返回能完成任务的最大数量。
回复 支持 反对

使用道具 举报

 楼主| zifanzzz 发表于 2016-10-1 01:32:44 | 显示全部楼层
zzhgetfuture 发表于 2016-10-1 01:20. 1point3acres.com/bbs
看不太懂楼主第一题的描述哎

同上- -我很背的碰上了这个题。。
回复 支持 反对

使用道具 举报

iwannabxm 发表于 2016-10-1 23:32:42 | 显示全部楼层
n = 2, a = {1, 2}, b = {2, 1} 返回1。因为在i = 0时候a = 1,b = 2。需要先做任务2。做完任务2时回来看任务1,发现在i = 1时候,做任务1之后才能完成任务2,然而任务2已经做完了无法完成任务1。所以只有任务2可以做。.

这里i=0的时候先做任务2再做任务1为什么不行?为啥要查一遍i=1的情况?
回复 支持 反对

使用道具 举报

sunny11 发表于 2016-10-3 05:15:41 | 显示全部楼层
我感觉第一问是不是要用topological sort做?类似于leetcode course schedule那题。
回复 支持 反对

使用道具 举报

 楼主| zifanzzz 发表于 2016-10-3 22:43:21 | 显示全部楼层
iwannabxm 发表于 2016-10-1 23:32
n = 2, a = {1, 2}, b = {2, 1} 返回1。因为在i = 0时候a = 1,b = 2。需要先做任务2。做完任务2时回来看任 ...

他就是这么问的。。我也很费解。这个题没写出来。
回复 支持 反对

使用道具 举报

AndrewFish 发表于 2016-10-3 23:17:24 | 显示全部楼层
zifanzzz 发表于 2016-9-30 10:32
我当时也读了半小时,题目超级长,大意就是在index i这个位置。你如果要完成任务a就必须要先完成任务b。 ...

怎么要完成任务a得先完成b,但是b完成了a又没法做了?
回复 支持 反对

使用道具 举报

 楼主| zifanzzz 发表于 2016-10-3 23:35:41 | 显示全部楼层
AndrewFish 发表于 2016-10-3 23:17
怎么要完成任务a得先完成b,但是b完成了a又没法做了?

他题目就是这么说的...(摊手)。时运不济啊碰到这种题
如果b已完成,就无法完成a. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

补充内容 (2016-10-3 23:36):
b [ i ]  和 a [ i ]
回复 支持 反对

使用道具 举报

AndrewFish 发表于 2016-10-4 04:39:12 | 显示全部楼层
zifanzzz 发表于 2016-10-3 08:35
他题目就是这么说的...(摊手)。时运不济啊碰到这种题
如果b已完成,就无法完成a。

哦 我明白了  感觉像是拓扑排序的变种   . more info on 1point3acres.com
这里的说法有点这样的意思:
这里执行任务a是为了执行b, 所以如果b已经执行过了, 那么就没必要执行a了。
不过这个关系有传递性吗? 比方说 e-->f-->g, 那你执行g之后还能执行e吗  如果是可以传递的, 那么应该可以用拓扑排序解吧?. Waral 鍗氬鏈夋洿澶氭枃绔,
回复 支持 反对

使用道具 举报

 楼主| zifanzzz 发表于 2016-10-4 04:50:44 | 显示全部楼层
AndrewFish 发表于 2016-10-4 04:39
哦 我明白了  感觉像是拓扑排序的变种   
这里的说法有点这样的意思:
. From 1point 3acres bbs这里执行任务a是为了执行b, 所以 ...

我记得是没有传递性,"one task will only have one dependent task"
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-8 17:49

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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