这道亚马逊的笔试题感觉答案不太对

2020-05-03 02:00:01 +08:00
 alexg812

当传入 [1,1,1,0,1,1,1,1] 和 2 days 的时候给预期答案是返回 [0,0,0,0,0,1,1,0], 但是我算出来不应该返回 [0,1,0,0,0,1,0,0] 才对吗?是我理解错了吗?

2694 次点击
所在节点    程序员
7 条回复
ConradG
2020-05-03 02:17:36 +08:00
[1, 0, 1] --> [x, 1, y]
sneezry
2020-05-03 02:19:55 +08:00
day 0: 1,1,1,0,1,1,1,1
day 1: 1,0,1,0,1,0,0,1
day 2: 0,0,0,0,0,1,1,0

var preArr, arr = [1,1,1,0,1,1,1,1];
var day = 2;

while(day--) {
preArr = arr;
arr = [];
for (let i = 0; i < preArr.length; i++) {
let left = i > 0 ? preArr[i - 1] : 0;
let right = i < preArr.length - 1 ? preArr [i + 1] : 0;
arr[i] = left ^ right;
}
}

console.log(arr)
alexg812
2020-05-03 02:24:30 +08:00
@sneezry 原来 day 1 的时候第 1 个和最后 1 个值不变吗,我以为 day 1 就要变 0 了
alexg812
2020-05-03 02:27:29 +08:00
@sneezry 感谢,这样的话我就理解了,之前一直想着从第一天开始就要变,钻牛角尖了
Mirage09
2020-05-03 07:08:31 +08:00
sneezry
2020-05-03 20:55:42 +08:00
@alexg812

> The two cells on the ends have single adjacent cell, so the other adjacent cell can be assumend to be aways inactive.

两端的数字只有一个相邻数,缺失的另一边可以看作永远是 0 ( inactive )。

所以是:(0,)1,1,1,0,1,1,1,1(,0)
alexg812
2020-05-04 04:39:22 +08:00
@sneezry 看来还是我理解出错了,再次感谢指导

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/668168

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX