598. Zombie in Matrix

Description

Given a 2D grid, each cell is either a wall?2, a zombie?1?or people?0?(the number zero, one, two).Zombies can turn the nearest people(up/down/left/right) into zombies every day, but can not through wall. How long will it take to turn all people into zombies? Return?-1?if can not turn all people into zombies.

Example

Example 1:

Input:

[[0,1,2,0,0],

[1,0,0,2,1],

[0,1,0,0,0]]

Output:

2

Example 2:

Input:

[[0,0,0],

[0,0,0],

[0,0,1]]

Output:

4

思路:

這個(gè)并不是典型的BFS,而是用了多點(diǎn)擴(kuò)散方式,并且核心是找出每一次變僵尸的點(diǎn)之間的規(guī)律, 第一次只要將矩陣?yán)锼薪┦页鰜?,然后把它們周邊的人變成僵尸,第二次只要查看在第一次中變成僵尸的點(diǎn)周邊的人就可以了,因?yàn)樵嫉慕┦苓呂覀円呀?jīng)查看過,所以不需要再去理會(huì),這樣每一次只查看上一次新變的僵尸周邊還有沒有人就可以,不需要用到隊(duì)列。

還有一點(diǎn)要注意的是,循環(huán)只有在所有變成的僵尸周邊沒有人的時(shí)候停止,這樣就意味在所有人都變成僵尸后我們始終會(huì)多數(shù)一天,最終的結(jié)果需要減去這一天。

代碼:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,847評(píng)論 0 10
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,914評(píng)論 0 13
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 11,081評(píng)論 0 23
  • 這兩晚到了半夜一點(diǎn)過后,能量就會(huì)澎湃的呼吸強(qiáng)行閉住的感覺~先是在胃的位置一股巨大的能量凝住了似的,連帶我的思維意識(shí)...
    LrisPeggy閱讀 198評(píng)論 0 2
  • 什么是初心 成長,是一個(gè)過程。不論在人生的哪個(gè)階段,回首往昔,恐怕都曾有過重回童年,重回青年或重回壯年的憧憬。而成...
    思維雕刻路閱讀 419評(píng)論 0 0

友情鏈接更多精彩內(nèi)容