题目解析
本题最优解题思路如下:
定义一个变量friendShip = 0,
首先对输入数组进行正向遍历(从左到右):
- 遇到“1”,则friendShip++
- 遇到“0”,则说明该空位左边的友好度为friendShip,记录下来,然后将friendShip重置为0
- 遇到“2”,则直接将friendShip重置为0
这样每个空位的左边的友好度就统计出来了。
接着,将friendShip重置为0,
然后对输入数组进行反向遍历(从右到左):
- 遇到“1”,则friendShip++
- 遇到“0”,则说明该空位右边的友好度为friendShip,累加下来,然后将friendShip重置为0
- 遇到“2”,则直接将friendShip重置为0
这样每个空位的整体友好度就统计出来了,取最大值返回。
JavaScript算法源码
/* JavaScript