等杨成和科勒文检查完身体,从医院出来,走在大街上。
“伙计,接下来干嘛?”,科勒文无聊地挠了挠头。
然后,他们就看见东边某个地方冒起了滚滚浓烟,像是着火了。
“嘿,咋们去看看”,科勒文好奇心顿起,拖着杨成就往那边跑。
等到两人赶到出事地点时,才发现是一家动物园。
这里大门紧闭,门外站着不少工作人员,对着里面指指点点。
园内,只听见一声骇人的狮吼,一只羚羊围着花坛跟一头非洲雄狮玩起了捉迷藏。
没过多久,又听见熊的嚎叫声,一头成年棕熊摇摇晃晃地追逐着一只绵羊。
“我的天哪,这是在拍《动物世界》吗?”,杨成难以置信地看着这一切。
“没有,年轻人”,一位工作人员走过来解释道。
“动物园的供电系统出了问题,笼子的电门都自动打开了”。
“动物们都跑了出来,它们开始自相残杀了!”
“呃~”,杨成摊了摊手,表示这样的事情真是闻所未闻。
“那,咋们得采取些措施吧?难道就这么眼睁睁看着它们玩饥饿游戏?”
“没办法”,工作人员耸了耸肩,“在防爆特警们带着足够的麻醉弹来之前,咋们还是预测下哪些动物可以幸存下来吧!”
“愿闻其详”,杨成接下了任务。
“食肉动物会吃掉食草动物,而食肉动物之间通常情况下不会争斗”,工作人员解说道。
“食草动物自然是会和睦相处”。
“下面是动物们所处相对位置的列表:”
[“lion”,”antelope”,”bear”,”chicken”,”cow”]
“你必须从左到右扫描,并且记录下哪些动物吃掉了相邻的其它动物”。
“好的”,杨成拿到这个问题就感觉很轻松。
这个算法将反复地从列表左侧向右侧扫描,一旦发现了食肉动物,就检测该动物的左右两边(相邻)是否有食草动物,如果有,就记录这次“吃掉”事件,并且从列表中移除该食草动物,如果没有发现目标,就跳到下一个食肉动物,继续检测相邻动物。这个扫描过程将持续到,整个遍历都没有发生“吃掉”事件为之,算法结束。
首先,lion(狮子)发现了antelope(羚羊),把它吃掉。
然后,lion(狮子)发现了bear(熊),两强相争,必有一伤,所以打不起来。
接着,bear(熊)发现了chicken(鸡),把它吃掉,从列表移除。
然后,又从lion(狮子)开始,它发现了老对头bear(熊),直接略过。
bear(熊)发现有一头奶牛(cow)在附近,把它吃掉。
最后又从lion(狮子)开始,此时除了狮子就只有熊,再也没有“吃掉”事件,算法结束。
所以,整个过程按照先后顺序,一共记录了三次“吃掉”事件。
1.狮子吃羚羊
2.熊吃小鸡
3.熊吃奶牛
等到杨成写完这个功能,他不由得长吁一口气,擦了把汗。
“这真是动物园的一场灾难!”