一亩三分地论坛

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

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

刚刚做了LiveRamp的OA,题不多,但是free response好坑

[复制链接] |试试Instant~ |关注本帖
Laurinda93 发表于 2015-9-19 16:49:32 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类 本科 全职@LiveRamp - 网上海投 - 在线笔试 |Otherfresh grad应届毕业生

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

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

x
首先来介绍一下题目,抱歉我忘了截屏,不过题目原来地里面出现过,就是青蛙过河那道题,下面会附上别人的描述没有选择题,一共就是100分钟,两道题,除了coding以外,free response里面有两到问题
1. 对于coding题目,你现在要去给别人讲题,你怎么给他讲?注:这个人本身了解题目,但是不懂你的解法. Waral 鍗氬鏈夋洿澶氭枃绔,
2. 就是How LiveRamp excites you啦~
说实话,简答题都不难,但觉得这个向来每个准度,也不知道评判标准是什么;如果我能侥幸过OA,那么会回来再说说“这类”题我通常的答题重点(之前也面过一些小公司,准备过不少behavior question的题目,虽然大公司不看重这些吧,但我觉得有备无患)

最后,由于我的面经没有什么实质性建树,就来帮大家贡献一下我整理出来的,他家OA的所有题目吧。题目都有答案,但是个别选择题我不确定的,也都添加了自己的注解;我觉得答案没错的,也对比较tricky的题写了解题思路;然后几道coding题也都附上了别人的code和我的code,如果有错误麻烦指出。强迫症重度患者也已经把名字都改得特别规整了>"<
看了一下因为我的等级不够,传不了很多附件,就做到百度云里面了(方便国内和国外的人都能下载). From 1point 3acres bbs
【链接: http://pan.baidu.com/s/1pJrGjF1 密码: wd2y】

然后附上青蛙的题,和我的code;我的code其实不确定对不对,虽然代了几个test case感觉没有问题?不过我一向不是很会做DP


1有只青蛙要过河,起始位置position 0,一路跳到 X,每次跳得距离 在1 ~ D
2 每秒都会落下一片叶子,青蛙可以停在上面(叶子不会消失
3 给了一个Array, Array[k] 表示,k秒落下叶子的位置
求最早可以跳过X的时刻,如果不用跳就可以到达则返回0,不能到达则返回-1,-google 1point3acres

example
X=7 D = 3
Array = {3,1,3,5,2,1,6}
起始 可以到达的位置1,2,3
0秒,叶子落在3, 可以到达的位置1,2,3,4,5,6
1秒,叶子落在1,没变化,还是1,2,3,4,5,6.鏈枃鍘熷垱鑷1point3acres璁哄潧
2秒,叶子落在3,没变化
3秒,叶子落在5,可以到达的位置,从5开始加1~D,可到达 1,2,3,4,5,6,7,8. 1point 3acres 璁哄潧
可以跳过7,返回当前秒数. visit 1point3acres.com for more.

思路
两个table 1个记录叶子位置,一个记录可以到达的位置

. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴注意的问题
每当一片叶子掉下来,会影响整个格局,前面掉下来但没法reach的叶子可能又可以reach了,这里我用递归扫了一遍
  1.         public static int frogJump(int[] arr, int X, int D) {
  2.                 if (arr == null || arr.length == 0 || X <= D)
  3.                         return 0;

  4.                 int[] rst = new int[X + 1];
  5.                 Arrays.fill(rst, Integer.MAX_VALUE);
  6.                 rst[0] = 0;
  7.                 // position of leaf *AND* the earliest time reach this position.鏈枃鍘熷垱鑷1point3acres璁哄潧
  8.                 Map<Integer, Integer> leaf = new HashMap<>();
  9.                 leaf.put(0, 0);
  10.                 leaf.put(X, 0);. from: 1point3acres.com/bbs
  11.                
  12.                 for (int i = 0; i < arr.length; i++) {
  13.                         if (!leaf.containsKey(arr[i]))
  14.                                 // the earliest time reach *position* arr[i] is *time* i
  15.                                 leaf.put(arr[i], i);
  16.                 }
  17.                
  18.                 for (int pos = 1; pos <= X; pos++) {
  19.                         if (leaf.containsKey(pos)) {
  20.                                 if (pos <= D) {.1point3acres缃
  21.                                         rst[pos] = leaf.get(pos);
  22.                                 } else {
  23.                                         for (int step = 1; step <= D; step++) {
  24.                                                 if (leaf.get(pos) < rst[pos - step]) {
  25.                                                         rst[pos] = Math.min(rst[pos], rst[pos - step]);
  26.                                                 } else {
  27.                                                         rst[pos] = Math.min(rst[pos], leaf.get(pos));. 鍥磋鎴戜滑@1point 3 acres
  28.                                                 }
  29.                                         }
  30.                                 }
  31.                         }
  32.                 }
  33.                
  34.                 return rst[X] == Integer.MAX_VALUE ? -1 : rst[X];
  35.         }
复制代码

补充内容 (2015-9-21 05:21):
由于青蛙的题我怕叙述的不准确,昨天又重新截图发了帖子,可以戳这个链接看着两道题的原题
http://www.1point3acres.com/bbs/thread-142004-1-1.html


补充内容 (2015-9-24 09:03):
汇报一下,刚刚得到LiveRamp的电面通知,我也记得答应过大家会在拿到店面后说说我对简答题的经验,那么我就等到电面之后一起来说吧~~~

补充内容 (2015-9-29 11:34):. Waral 鍗氬鏈夋洿澶氭枃绔,
第一轮电面已通过,主要聊了聊background和LRU。之前看很多人说面试官会迟到,我的并没有,不过感觉他很着急,约的2pm,聊到215的时候就说we already take a long time,然后220就结束了。面试官是Ben

补充内容 (2015-10-12 07:33):
忘了说了,我自己犯二,记错了约的电面时间,就错过了>"<
小伙伴们继续加油!!!

评分

8

查看全部评分

 楼主| Laurinda93 发表于 2015-9-29 11:32:14 | 显示全部楼层
把之前写的一个帖子,一起放在这个下面,希望更多人能看到并且有所帮助~~~【 借着LiveRamp的OA,简单说说我对简答题的思路 】


1. why LiveRamp excites you这个问题,或者说这类问题是蛮常见的,尤其是小公司特别重视这个。之前也有人问我简答题有没有模板,我想说没有,而且就算是有也不建议用。我觉得,这个问题,无论你是去面哪家公司,都是很重要的。说实话,写代码这个其实最后大家都不会差太多,无非是你的解法巧妙点,他的时间快一点,总之多做题一定会有帮助的。再不济也能写出常规算法,而且你想面试官面过那么多人,你是很难在这个部分别出心裁的。
再次重申,这个部分对小公司真的很重要!一定要特别重视!我是明年本科毕业,正在找全职,之前找实习期间大小公司都有面过。大公司比如FLAG那些真的就是纯拼代码,但是相反小公司特别重视behavior这种题目,记得我去面concur的时候,他家HR还专门发了一份这类题目的总结。
个人经验是,
(1)每个公司一定要真的去做research,不用多深但是一定要把握这个公司的特点。
(2)一定要努力把公司的特点和自己的特点结合起来,也就是为什么公司招你不找别人。
(3)一定一定要有热情,就是如果文字叙述就要go in details,如果口头交流一定要让对方感受到你是真的喜欢这个。我知道这点可能对很多男生来讲比较难,我自己可能因为确实很容易对很多东西感兴趣,所以通常都是只要你给我一点时间,我都能把它说的让你觉得我就是很喜欢它,甚至说的你也很喜欢他(总被小伙伴说应该去做marketing,总是说的人感兴趣却又不反感);当然这个可能不是很容易做到,但是我觉得练一练吧,如果你想要去小公司的话~~~不过,如果一个公司你在努力都无法对它充满热情,那就放弃吧,你去了也会不开心的~. From 1point 3acres bbs

然后来举几个例子说说我一般怎么来发掘我对公司喜好和了解,这个部分不一定要很多条,但是一定要有重点有特点:
(1)准备两三个大公司和小公司工作的好处,这里的大小并非单纯指公司规模,而是还要看码农类的规模;比如有些公司历史久远,但是软件类才刚起步。所以大公司和小公司工作的好处都会用得到。比如,可以看看他有没有分公司或者跨国公司,这样子可以说到机会多,或者接收到多元文化;如果是小公司,我可能会说,新生活里,让我觉得很有动力工作. From 1point 3acres bbs
(2)查一查口碑,比如“近年”获得什么荣誉称号,这个一定很好找到,谁不把自己的名声摆出来呀是吧~然后挑重点,可以说哇塞。居然XXX都跟你有合作啊!好厉害呀!吓到宝宝了呢!然后我就好想融入这么牛逼的公司呀~~~
(3)每一个公司都会有自己的idea,找到他们最特殊的,一般都会带个引号或者单门有个网页,然后就说“嗯你这个点真的很吸引我,虽然做这方面项目的公司很多,但我认为你这个比其他人怎么怎么好,怎么怎么切实际”
(4)结合个人特点,这个特别重要,我觉得也可以作为吸引人的亮点,这个就是看你能怎么样发觉自己啦~~~我来举几个例子,都是亲身经验,这个也要注意不要刻意造假一面说不出细节
【1】面Concur的时候,这是一个做Business Travel 和 Reimbursement的公司,我就会说“我曾经在旅行社工作过三个月,也接触过很多公务团的组团,以及带领过公务团,所以比较了解这类注资方和旅行者分别的需求”. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
【2】面LiveRamp之类的公司,因为都是Big Data嘛,我就会结合我的专业说,我之前是“Applied Math”的“Statistic”分支,最近刚转到"Scientific Computation & Numerical Analysis"分支,就会很好帖
【3】面Epic的时候,因为和医疗有关,我是double major,另一个就是biochemistry制药相关,所以也是一个点
当然,我的例子可能不适用于你,但是只是想说,一定要发掘自己最独特的,这样子会对这类问题很有帮助

2. Six Degree-google 1point3acres
这个虽然我没有被面到,但还是想重点来说一说,我觉得这个题特别好;以我本科的角度来看,研究生都是能做到很多很厉害的项目,但其实面试的时候,除非那个人特别懂你做的这类东西,不然你们两个也很难说到细节;但是Six Degree作为一道图形基础题,实现的方式包含的最基础也最重要的算法,我觉得值得好好准备。不光是简单的有思路,我觉得如果有可能,建议自己写一下,一定会对图形题有很大的帮助。而且其实也不难的,我曾经做过这个的作业,就是周作业那种,很快就能写完。但是我们的作业要求只实现三个算法,后来我又自己写了其他,这里简单说一下:. more info on 1point3acres.com
DFS:这个主要问题就是如果选错的入口,就要一直走到底,可以考虑limited DFS,用stack实现
BFS:用queue,会缩短平均遍历长度,但是如果每个node的分支很多,会造成不必要的浪费
DIJKSTRA:这个是给每条边增加权重,实质和BFS一样
A*:这个可以帮助解决BFS的弊端,给每个点增加“正确率”的特性,缺点是需要了解计算正确率的function,但是本质还是DFS
Bi-Direc BFS/Dijk/A*:本质相同,都需要两个queue,两个HashSet,分别给左起点和右起点用
最后,再说一句,DFS比较容易记录正确的路径,而剩下几个如果想要track path则需要辅助方法以及precessor

3. 关于我做过的free response的第一题,怎么解释你的算法. Waral 鍗氬鏈夋洿澶氭枃绔,
这个没什么特别多说的,因为大家算法不同,但我觉得你如果写到白板上要注意以下几点
(1)有逻辑,进行分段或者标数字
(2)尽量不要说得太难太复杂,因为估计看你答案的都是HR
(3)运用方法标出重点,比如我最喜欢用的就是 find the *ONLY* node that .....
(4)对于解释算法,我觉得可以这样,用一段两三句话说整体思路,比如为什么用DP/DFS/...
然后两到三段解释几个重点的edge case,或者你代码中的难点,说白了就是如果你给这段代码做comment,那么就重点解释comment,因为其他部分你不说别人也能懂
最后用一段一两句话总结


                               
登录/注册后可看大图

.鏈枃鍘熷垱鑷1point3acres璁哄潧

评分

1

查看全部评分

回复 支持 3 反对 0

使用道具 举报

 楼主| Laurinda93 发表于 2015-9-29 15:16:54 | 显示全部楼层
【青蛙】的原题叙述~~~ 这个我的code写的不是很好,不过也算是过了OA,大家可以继续改进!!!不过要注意题目对runtime和memory的要求
. from: 1point3acres.com/bbs
                               
登录/注册后可看大图
回复 支持 反对

使用道具 举报

stellari 发表于 2015-9-20 20:40:15 | 显示全部楼层
感谢楼主分享,这道题其实可以用类似于Maximum Gap的思想来做:把0~X这X+1个格子按照每个bin长为D+1等分,共N = (X+1)/(D+1)个bin(不是整数的话取ceil)。
因为青蛙最大能够跳过D的距离,所以. Waral 鍗氬鏈夋洿澶氭枃绔,
1. 在同一个bin内的任意两片叶子肯定能跳过,
2. 中间隔了一个或以上bin的两片叶子肯定无法直接跳过(即青蛙必定要从一个bin跳到相邻的bin,不可能跨bin跳)
因此,青蛙必定要在这N个bin之间跳正好N-1次(这以外的跳跃都是发生在bin内部,所以就不管了),才能到达X。我们只要看这N个bin间是不是建立起了N-1次联系就可以了。为此,我们给每个bin维护一个min和max值。每次加入一片叶子,就更新其对应bin的min/max值。然后检查:是否因为这个叶子加入,使得该bin和其相邻的bin能够建立起联系。如果是的话,“联系”值++。最后,能够跳到X的充要条件是“联系”值==N-1。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

该算法将每片叶子放入bin,检查与周围bin的连接情况等都是O(1)操作,因此最后总复杂度是O(arrLen)。空间复杂度则是O(X/D)。

评分

4

查看全部评分

回复 支持 5 反对 0

使用道具 举报

cbwcs 发表于 2015-9-20 07:14:03 | 显示全部楼层
感觉用greedy就行了,用一个bool数组记录有没有叶子,每次更新到最远的位置,然后有叶子落到当前位置能达到的最远距离之内就更新,时间复杂度O(N)
回复 支持 2 反对 0

使用道具 举报

wilsonyqm 发表于 2015-9-20 05:23:46 | 显示全部楼层
楼主的方法复杂度太高了,如果X是1billion, D是1 million,那么复杂度是O(X),空间是O(ArrLen),如果ArrLen很小,那么就浪费了大量的时间。 这道题可以用Minheap做到复杂度O(Arrlen*log(Arrlen)), 空间O(Arrlen)。
回复 支持 1 反对 0

使用道具 举报

stellari 发表于 2015-9-21 14:01:19 | 显示全部楼层
Laurinda93 发表于 2015-9-21 13:46
不好意思哈~~~ .鐣欏璁哄潧-涓浜-涓夊垎鍦
就是好像用什么都return -1;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
比如我用{1, 3, 1, 4, 2, 5},7,3

你不妨自己调试一下,看退出时countStep的值究竟是多少。我粗浅的看法是这个程序的分bucket的方法有问题。比如X = 7,D = 3的情况。那么如果bucket长取为D,应该分[0 1 2], [3 4 5], [6 7 X] 共3个bucket,而你事实上分了ceil(X/D) + 1 = ceil(2.33) + 1 = 3 + 1 = 4个。所以,最后countStep应该总会停在1上。当然这只是粗看一眼的推测,具体情况还要你自己调试确认。
回复 支持 1 反对 0

使用道具 举报

wilsonyqm 发表于 2015-9-20 05:23:37 | 显示全部楼层
楼主的方法复杂度太高了,如果X是1billion, D是1 million,那么复杂度是O(X),空间是O(ArrLen),如果ArrLen很小,那么就浪费了大量的时间。 这道题可以用Minheap做到复杂度O(Arrlen*log(Arrlen)), 空间O(Arrlen)。
回复 支持 反对

使用道具 举报

 楼主| Laurinda93 发表于 2015-9-20 16:55:25 | 显示全部楼层
cbwcs 发表于 2015-9-20 07:14. 鍥磋鎴戜滑@1point 3 acres
感觉用greedy就行了,用一个bool数组记录有没有叶子,每次更新到最远的位置,然后有叶子落到当前位置能达到 ...

我觉得你说的好像不太对?还是我没理解对?
首先,如果只用boolean的话,你怎么判断先后性"the earliest";假如对于position 3的叶子,第一秒和第三秒都出现过一次,那么你的办法显然无法区分
最终,从全局来看,你也依旧是没法判断最早时间

如果我理解错你的意思和我说
回复 支持 反对

使用道具 举报

stellari 发表于 2015-9-20 20:41:13 | 显示全部楼层
wilsonyqm 发表于 2015-9-20 05:23-google 1point3acres
楼主的方法复杂度太高了,如果X是1billion, D是1 million,那么复杂度是O(X),空间是O(ArrLen),如果A ...

能否介绍一下如何用minHeap来做呢?多谢
回复 支持 反对

使用道具 举报

stellari 发表于 2015-9-20 20:59:15 | 显示全部楼层
刚想起来我之前好像回答过一个一模一样的问题,见:
. From 1point 3acres bbs
http://www.1point3acres.com/bbs/ ... &highlight=frog
回复 支持 反对

使用道具 举报

cbwcs 发表于 2015-9-21 00:54:37 | 显示全部楼层
Laurinda93 发表于 2015-9-20 16:55
我觉得你说的好像不太对?还是我没理解对?
首先,如果只用boolean的话,你怎么判断先后性"the earliest ...

就是在第三片叶子上的时候,只需要管出现在4,5,6的叶子,如果有新的叶子飘下来(但在三之前的)都不用管,因为没办法更新到最远,比如当第五的叶子飘下来了,而且是小于等于6的,就更新到第五片叶子。
回复 支持 反对

使用道具 举报

mnmunknown 发表于 2015-9-21 01:03:43 | 显示全部楼层
stellari 发表于 2015-9-20 20:40
感谢楼主分享,这道题其实可以用类似于Maximum Gap的思想来做:把0~X这X+1个格子按照每个bin长为D+1等分, ...

这题上周和朋友一起做OA碰到了,考虑了很多个只能做到O(n log n)的算法,最后讨论结果O(n) 的算法和你描述的完全一致,手动点赞
回复 支持 反对

使用道具 举报

sun8525787 发表于 2015-9-21 01:06:16 | 显示全部楼层
wilsonyqm 发表于 2015-9-20 05:23
楼主的方法复杂度太高了,如果X是1billion, D是1 million,那么复杂度是O(X),空间是O(ArrLen),如果A ...
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
这道题确实可以用MinHeap做,代码也简单,不过这道题原题是要求时间复杂度为O(Arrlen),空间复杂度为O(X) (worst case).
回复 支持 反对

使用道具 举报

liuziqi01 发表于 2015-9-21 01:15:46 | 显示全部楼层
cbwcs 发表于 2015-9-21 00:54
就是在第三片叶子上的时候,只需要管出现在4,5,6的叶子,如果有新的叶子飘下来(但在三之前的)都不用管 ...

恩,我也是这样做的,就是把之后的叶子储存起来,然后尽量目前尽量更新的最远。-google 1point3acres

算是贪婪吧。。但觉得这道题贪婪也没什么不对

补充内容 (2015-9-21 01:16):. 1point3acres.com/bbs
一周前做的OA,和楼主题目一模一样…………但是现在还没有结果,估计是要挂了
回复 支持 反对

使用道具 举报

 楼主| Laurinda93 发表于 2015-9-21 11:16:00 | 显示全部楼层
stellari 发表于 2015-9-20 20:40
感谢楼主分享,这道题其实可以用类似于Maximum Gap的思想来做:把0~X这X+1个格子按照每个bin长为D+1等分, ...

我按照你的思路写了一下,但是好像结果不太对,不知道能麻烦大神帮忙看看嘛?谢谢啦
  1.         public static int frogJump(int[] arr, int X, int D) {. From 1point 3acres bbs
  2.                 if (arr == null || arr.length == 0 || X <= D)
  3.                         return 0;
  4.                 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  5.                 int bucketNum = (int)Math.ceil((double)X / D) + 1;
  6.                 int countStep = bucketNum - 1; // at least countStep to jump out -google 1point3acres
  7.                 Bucket[] bucket = new Bucket[bucketNum];
  8.                 Arrays.fill(bucket, new Bucket(Integer.MAX_VALUE, Integer.MIN_VALUE));. 1point 3acres 璁哄潧
  9.                 . more info on 1point3acres.com
  10.                 for (int i = 0; i < arr.length; i++) {
  11.                         int currBucket = arr[i] / D;
  12.                        
  13.                         if (bucket[currBucket].contains(arr[i])) // has checked CAN reach OR NOT. 1point 3acres 璁哄潧
  14.                                 continue;.1point3acres缃
  15.                         bucket[currBucket].min = Math.min(bucket[currBucket].min, arr[i]);
  16.                         bucket[currBucket].max = Math.max(bucket[currBucket].max, arr[i]);
  17.                        
  18.                         int prevMax = currBucket == 0 ? Integer.MIN_VALUE : bucket[currBucket - 1].max;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  19.                         int nextMin = (currBucket == bucketNum - 1) ? Integer.MAX_VALUE : bucket[currBucket + 1].min;
  20.                        
  21.                         boolean canReachPrev = bucket[currBucket].min - prevMax <= D;
  22.                         boolean canReachNext = nextMin - bucket[currBucket].max <= D;
  23.                        
  24.                         if (canReachPrev) {
  25.                                 countStep--;
  26.                         }
  27.                         if (canReachNext) {
  28.                                 countStep--;
  29.                         }
  30.                        
  31.                         if (countStep == 0)
  32.                                 return currBucket;
  33.                 }
  34.                 return -1;
  35.         }
  36.        
  37.         public static class Bucket {
  38.                 public int min;
  39.                 public int max;
  40.                
  41.                 public Bucket(int min, int max) {
  42.                         this.min = min;
  43.                         this.max = max;. visit 1point3acres.com for more.
  44.                 }
  45.                
  46.                 public boolean contains(int num) {
  47.                         return min <= num && max >= num;
  48.                 }
  49.         }
复制代码
回复 支持 反对

使用道具 举报

stellari 发表于 2015-9-21 13:16:18 | 显示全部楼层
Laurinda93 发表于 2015-9-21 11:16
我按照你的思路写了一下,但是好像结果不太对,不知道能麻烦大神帮忙看看嘛?谢谢啦

能否具体描述一下“不太对”是怎么个情况?用的是什么测试用例呢?
回复 支持 反对

使用道具 举报

stellari 发表于 2015-9-21 13:30:13 | 显示全部楼层
cbwcs 发表于 2015-9-21 00:54
就是在第三片叶子上的时候,只需要管出现在4,5,6的叶子,如果有新的叶子飘下来(但在三之前的)都不用管 ...

这样的话,如果第五片叶子掉下来后,我们需要马上判断青蛙是否这时就能够跳到终点,否则我们就得不到能跳过河的最早时间,对吧?但是如果不用bucket array,并查集,minheap之类的数据结构,如何能快速地做到这一点呢?如果是开辟一个长为X的数组,然后一个一个去看是否每一点有叶子的话,这个时间复杂度就是O(X),就不太能接受了。能否详细说说你的想法?
回复 支持 反对

使用道具 举报

 楼主| Laurinda93 发表于 2015-9-21 13:46:26 | 显示全部楼层
stellari 发表于 2015-9-21 13:16
能否具体描述一下“不太对”是怎么个情况?用的是什么测试用例呢?
. 鍥磋鎴戜滑@1point 3 acres
不好意思哈~~~
就是好像用什么都return -1;
比如我用{1, 3, 1, 4, 2, 5},7,3
回复 支持 反对

使用道具 举报

 楼主| Laurinda93 发表于 2015-9-21 15:13:39 | 显示全部楼层
stellari 发表于 2015-9-21 14:01
你不妨自己调试一下,看退出时countStep的值究竟是多少。我粗浅的看法是这个程序的分bucket的方法有问题 ...

你说的那种调试我之前也有改变过,但是就会同样的case 返回0,所以我不知道是不是我在方法思路上本身没理解对你的意思?
回复 支持 反对

使用道具 举报

stellari 发表于 2015-9-21 18:53:07 | 显示全部楼层
Laurinda93 发表于 2015-9-21 15:13
你说的那种调试我之前也有改变过,但是就会同样的case 返回0,所以我不知道是不是我在方法思路上本身没理 ...

除了一个地方以外(见下)其他我没看出有什么问题,为什么不把countStep的值打出来确认一下呢。只要看一下countStep的值一切就都明白了,也不需要做其他的各种猜测。

看你程序的意思,应该是只要返回非-1就说明能够到达X吧。所以如果返回0就说明程序确实检查出了能够通过。但是此时应该返回i,你返回的却是currBucket(我不明白为什么要这样做)。返回0只是说明你的示例中的最后一片叶子应该恰落在0号bucket中。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

goo 发表于 2015-9-21 22:20:31 | 显示全部楼层
  1. 写了一个不是很优化的解法 不过好在简洁易懂
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-6 11:22

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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