由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一个面试题
相关主题
jump game II的证明发一道FB的题讨论下
请教一道google面试题 meeting point for N peopleLongest Palindromic Substring from leetcode
这道题怎么解问个leetcode上的题目jump gameII,最优解是dijkstra最短路径
Amazon电面问题求大牛解答请教如何使用linkedin?
问1道array hop的题this question is nice
leetcode jump game2onsite 完对没有给名片的interivewer怎么发thankyou letter?
Facebook intern 电话面经LInkedin 上面的premium account
请教一道算法题how many ways can you paint a cube using 3 colors?
相关话题的讨论汇总
话题: maxrange话题: maxcenter话题: input话题: failure话题: cur
进入JobHunting版参与讨论
1 (共1页)
b*********s
发帖数: 115
1
array hooper
给一个array,每个元素都是大于等于0的数字,每个数字代表可以向右跳的最大步数。
从第一个元素出发,要跳出数组。跟leetcode的jump gameII差不多,区别在于
1. 这里要求跳出数组,leetcode是要求跳到最后一个元素
2. 如果能跳出数组,给出其中一组最少步数的跳法,如不能跳出,输出failure。
leetcode是只要求给出答案能不能跳到最后
examples:
input: 1, 1 output: 0, 1, out
input: 2, 1, 3, 1, 1 output: 0, 2, out
input: 5, 6, 0, 4, 2, 4, 1, 0, 0, 4 output: 0, 5, 9, out
input: 1, 2, 1, 0, 2 output: failure
我的代码是
def hopper(a):
a.append(0)
path = []
cur = 0
maxCenter = 0
maxRange = 0
for i, n in enumerate(a):
if i > cur:
if i > maxRange:
print "failure"
return
else:
path.append(maxCenter)
cur = maxRange
if i + n > maxRange:
maxCenter = i
maxRange = max(maxRange, i + n)

path.append('out')
print ', '.join(map(str, path))
return
两天后被拒了,求大牛指出我的代码错哪了


u*****o
发帖数: 1224
2
面的是whitepage吗? 做过一模一样的coding challenge的题。。。用的是greedy的解
,也被据了。。不知是不是DP更好?
b*********s
发帖数: 115
3

是的 就是whitepage 我觉得greedy已经是最好的了啊 空间O(1),时间O(n)
死的不甘心啊

【在 u*****o 的大作中提到】
: 面的是whitepage吗? 做过一模一样的coding challenge的题。。。用的是greedy的解
: ,也被据了。。不知是不是DP更好?

u*****o
发帖数: 1224
4
没错,我还写了很详尽的complexity analysis, 说明它比DP superior。。
你是UW career fair递的简历吗? 我当时就是做了那个checker board的题,然后收到
这个code challenge, 没想到这个要求这么高。。。

【在 b*********s 的大作中提到】
:
: 是的 就是whitepage 我觉得greedy已经是最好的了啊 空间O(1),时间O(n)
: 死的不甘心啊

b*********s
发帖数: 115
5

不是 我是在LinkedIn上给他们的hr发了一封inMail
hr第二天给我发了封邮件问我愿不愿意做coding challenge,我回了他之后就一个星期
都没再联系我,后来我又发了一封邮件去催他才把题目发过来,交了之后两天就被拒了

【在 u*****o 的大作中提到】
: 没错,我还写了很详尽的complexity analysis, 说明它比DP superior。。
: 你是UW career fair递的简历吗? 我当时就是做了那个checker board的题,然后收到
: 这个code challenge, 没想到这个要求这么高。。。

u*****o
发帖数: 1224
6
这家很好吗? 我根本没听说过呀。。
career fair才认识他家,别人都送劣质笔,他家送的是手套,我现在还带着呢。。。
感觉对coding challenge要求还蛮高的。。

【在 b*********s 的大作中提到】
:
: 不是 我是在LinkedIn上给他们的hr发了一封inMail
: hr第二天给我发了封邮件问我愿不愿意做coding challenge,我回了他之后就一个星期
: 都没再联系我,后来我又发了一封邮件去催他才把题目发过来,交了之后两天就被拒了

b*********s
发帖数: 115
7

实情是我太挫了哈哈 在linkedin上面骚扰了很多hr 目前只有他们一家鸟我

【在 u*****o 的大作中提到】
: 这家很好吗? 我根本没听说过呀。。
: career fair才认识他家,别人都送劣质笔,他家送的是手套,我现在还带着呢。。。
: 感觉对coding challenge要求还蛮高的。。

J****3
发帖数: 427
8
。。。哈哈

【在 u*****o 的大作中提到】
: 这家很好吗? 我根本没听说过呀。。
: career fair才认识他家,别人都送劣质笔,他家送的是手套,我现在还带着呢。。。
: 感觉对coding challenge要求还蛮高的。。

z****e
发帖数: 54598
9
现在看到这种题第一感觉就是dp……
c*******2
发帖数: 60
10
我前天也做了这道题...
然后昨天起来回想自己的思路, 发现了一个bug, 硬着头皮给HR发邮件说明了bug,昨晚
看到这个帖子后感觉他们不会理我了, 结果今天收到邮件说想多聊聊...
相关主题
leetcode jump game2发一道FB的题讨论下
Facebook intern 电话面经Longest Palindromic Substring from leetcode
请教一道算法题问个leetcode上的题目jump gameII,最优解是dijkstra最短路径
进入JobHunting版参与讨论
w**t
发帖数: 893
11
greedy for sure does not work.
eg. step 0 -- 1, 3
step 1 -- 100
step 3 -- 1
first to 1 is better than to 3
this is a dp with memorization. should be space o(n), time o(n2), the best I
can come up.

【在 c*******2 的大作中提到】
: 我前天也做了这道题...
: 然后昨天起来回想自己的思路, 发现了一个bug, 硬着头皮给HR发邮件说明了bug,昨晚
: 看到这个帖子后感觉他们不会理我了, 结果今天收到邮件说想多聊聊...

l*n
发帖数: 529
12
你理解的greedy有问题,不是每次直接跑最远。
http://stackoverflow.com/questions/9041853/interview-puzzle-jum

I

【在 w**t 的大作中提到】
: greedy for sure does not work.
: eg. step 0 -- 1, 3
: step 1 -- 100
: step 3 -- 1
: first to 1 is better than to 3
: this is a dp with memorization. should be space o(n), time o(n2), the best I
: can come up.

b*********s
发帖数: 115
13

能说一下你的解法是什么吗?我现在就只是想知道到底我的解法错在哪里了

【在 c*******2 的大作中提到】
: 我前天也做了这道题...
: 然后昨天起来回想自己的思路, 发现了一个bug, 硬着头皮给HR发邮件说明了bug,昨晚
: 看到这个帖子后感觉他们不会理我了, 结果今天收到邮件说想多聊聊...

b*********s
发帖数: 115
14
不好意思 有点不太懂你的例子 能详细点说说吗

I

【在 w**t 的大作中提到】
: greedy for sure does not work.
: eg. step 0 -- 1, 3
: step 1 -- 100
: step 3 -- 1
: first to 1 is better than to 3
: this is a dp with memorization. should be space o(n), time o(n2), the best I
: can come up.

c*******2
发帖数: 60
15
也是greedy的

能说一下你的解法是什么吗?我现在就只是想知道到底我的解法错在哪里了

【在 b*********s 的大作中提到】
: 不好意思 有点不太懂你的例子 能详细点说说吗
:
: I

l**********o
发帖数: 260
16
不仔细看帖就吃亏呀!我也做了这家,在大家之后。交了之后发现bug。。。。
这题能O(n) 时间?不可能吧。。。
bfs 或者 dp 都有解,我用了dp, 完了之后才想到bfs, bfs应该更有效率。
我不太熟Python, wzxt 给的例子你test一下试试看。
array 是 3 100 1 1 1 1 1 0 或者你试试这个 case

★ 发自iPhone App: ChineseWeb 7.8

【在 b*********s 的大作中提到】
: 不好意思 有点不太懂你的例子 能详细点说说吗
:
: I

b*********s
发帖数: 115
17
我不太懂他那个test的意思
用3 100 1 1 1 1 1 0 作input的话我写的那个greedy出来结果是0, 1, out

【在 l**********o 的大作中提到】
: 不仔细看帖就吃亏呀!我也做了这家,在大家之后。交了之后发现bug。。。。
: 这题能O(n) 时间?不可能吧。。。
: bfs 或者 dp 都有解,我用了dp, 完了之后才想到bfs, bfs应该更有效率。
: 我不太熟Python, wzxt 给的例子你test一下试试看。
: array 是 3 100 1 1 1 1 1 0 或者你试试这个 case
:
: ★ 发自iPhone App: ChineseWeb 7.8

C******w
发帖数: 23
18
greedy不对吧,这题正解是dp啊,O(N)时间解决不了的吧
l**********o
发帖数: 260
19
我觉得你是对的,真是o(n)。
如果非要吹毛求疵的话,是不是一旦跳出去,就不用继续loop,直接返回结果

★ 发自iPhone App: ChineseWeb 7.8

【在 b*********s 的大作中提到】
: 我不太懂他那个test的意思
: 用3 100 1 1 1 1 1 0 作input的话我写的那个greedy出来结果是0, 1, out

b*********s
发帖数: 115
20

求大牛解释 或给反例

【在 C******w 的大作中提到】
: greedy不对吧,这题正解是dp啊,O(N)时间解决不了的吧
相关主题
请教如何使用linkedin?LInkedin 上面的premium account
this question is nicehow many ways can you paint a cube using 3 colors?
onsite 完对没有给名片的interivewer怎么发thankyou letter?这个题咋做?
进入JobHunting版参与讨论
C******w
发帖数: 23
21
首先,是若菜不是大牛;
其次,仔细看了下题目还有你的解法,您这个O(N)算法是对的。

【在 b*********s 的大作中提到】
:
: 求大牛解释 或给反例

p****o
发帖数: 46
22
I think your condition for "failure" is wrong:
if i > cur:
if i > maxRange:
print "failure"
return
e.g., the case that it stops right at the end (i.e., case maxRange == n-1, n
is the size of input array a):
[2,3,1,1,0], which you should output "failure".
the right condition for success should be "maxRange > n-1", strictly greater
. (i.e., "<=" for failure)
based on your code, you can decide fail or success after the loop is
finished, e.g., if (maxRange > len(a)-1) out; else fail

【在 b*********s 的大作中提到】
: array hooper
: 给一个array,每个元素都是大于等于0的数字,每个数字代表可以向右跳的最大步数。
: 从第一个元素出发,要跳出数组。跟leetcode的jump gameII差不多,区别在于
: 1. 这里要求跳出数组,leetcode是要求跳到最后一个元素
: 2. 如果能跳出数组,给出其中一组最少步数的跳法,如不能跳出,输出failure。
: leetcode是只要求给出答案能不能跳到最后
: examples:
: input: 1, 1 output: 0, 1, out
: input: 2, 1, 3, 1, 1 output: 0, 2, out
: input: 5, 6, 0, 4, 2, 4, 1, 0, 0, 4 output: 0, 5, 9, out

b*********s
发帖数: 115
23

n
greater
输入是2, 3, 1, 1, 0的时候我的程序没有错,结果是failure
我在最开始的时候往数组最后面加了个0

【在 p****o 的大作中提到】
: I think your condition for "failure" is wrong:
: if i > cur:
: if i > maxRange:
: print "failure"
: return
: e.g., the case that it stops right at the end (i.e., case maxRange == n-1, n
: is the size of input array a):
: [2,3,1,1,0], which you should output "failure".
: the right condition for success should be "maxRange > n-1", strictly greater
: . (i.e., "<=" for failure)

p****o
发帖数: 46
24
ok, I only had a glimpse on a.append(0), and quickly skip it... :-), have
not written python for quite some time.
then I think it is correct. but personally, I feel it is tricky to append "0
" at the end of input, and also the input has to change. Another
controversial case is the empty input, you will output "out".
Well, maybe the reviewer did not see that "append", or did not think too
much. or there is still something wrong we have not checked out.
Your code is not far from not modifying input, as follows.
def hopper(a):
path = []
cur = 0
maxCenter = 0
maxRange = 0
for i, n in enumerate(a):
if i > cur:
path.append(maxCenter)
cur = maxRange
if i + n > maxRange:
maxCenter = i
maxRange = i + n

if (maxRange <= len(a)):
print "failure"
return

path.append('out')
print ', '.join(map(str, path))
return

【在 b*********s 的大作中提到】
:
: n
: greater
: 输入是2, 3, 1, 1, 0的时候我的程序没有错,结果是failure
: 我在最开始的时候往数组最后面加了个0

b*********s
发帖数: 115
25

"0
You're right. Thanks!

【在 p****o 的大作中提到】
: ok, I only had a glimpse on a.append(0), and quickly skip it... :-), have
: not written python for quite some time.
: then I think it is correct. but personally, I feel it is tricky to append "0
: " at the end of input, and also the input has to change. Another
: controversial case is the empty input, you will output "out".
: Well, maybe the reviewer did not see that "append", or did not think too
: much. or there is still something wrong we have not checked out.
: Your code is not far from not modifying input, as follows.
: def hopper(a):
: path = []

w*******e
发帖数: 395
26
这道题目就是leetcode的jump game II,没有任何区别

【在 b*********s 的大作中提到】
: array hooper
: 给一个array,每个元素都是大于等于0的数字,每个数字代表可以向右跳的最大步数。
: 从第一个元素出发,要跳出数组。跟leetcode的jump gameII差不多,区别在于
: 1. 这里要求跳出数组,leetcode是要求跳到最后一个元素
: 2. 如果能跳出数组,给出其中一组最少步数的跳法,如不能跳出,输出failure。
: leetcode是只要求给出答案能不能跳到最后
: examples:
: input: 1, 1 output: 0, 1, out
: input: 2, 1, 3, 1, 1 output: 0, 2, out
: input: 5, 6, 0, 4, 2, 4, 1, 0, 0, 4 output: 0, 5, 9, out

z***n
发帖数: 11
27
lz这个贪心算法不对,给个例子(下标从0开始)。大家验证一下
2 3 100 1 1 1
自己推算,lz的程序会输出 0 1 2 out

【在 b*********s 的大作中提到】
: array hooper
: 给一个array,每个元素都是大于等于0的数字,每个数字代表可以向右跳的最大步数。
: 从第一个元素出发,要跳出数组。跟leetcode的jump gameII差不多,区别在于
: 1. 这里要求跳出数组,leetcode是要求跳到最后一个元素
: 2. 如果能跳出数组,给出其中一组最少步数的跳法,如不能跳出,输出failure。
: leetcode是只要求给出答案能不能跳到最后
: examples:
: input: 1, 1 output: 0, 1, out
: input: 2, 1, 3, 1, 1 output: 0, 2, out
: input: 5, 6, 0, 4, 2, 4, 1, 0, 0, 4 output: 0, 5, 9, out

b*********s
发帖数: 115
28
我的程序输出 0, 2, out

【在 z***n 的大作中提到】
: lz这个贪心算法不对,给个例子(下标从0开始)。大家验证一下
: 2 3 100 1 1 1
: 自己推算,lz的程序会输出 0 1 2 out

1 (共1页)
进入JobHunting版参与讨论
相关主题
how many ways can you paint a cube using 3 colors?问1道array hop的题
这个题咋做?leetcode jump game2
关于在美国找工作的一些体会Facebook intern 电话面经
Bloomberg 电面请教一道算法题
jump game II的证明发一道FB的题讨论下
请教一道google面试题 meeting point for N peopleLongest Palindromic Substring from leetcode
这道题怎么解问个leetcode上的题目jump gameII,最优解是dijkstra最短路径
Amazon电面问题求大牛解答请教如何使用linkedin?
相关话题的讨论汇总
话题: maxrange话题: maxcenter话题: input话题: failure话题: cur