问题:如果邻居(上/下/左/右)为零,则每转一圈,单元格减少1。每个像元达到零的时间总和是多少?
有没有比使用优先级队列更快的解决方案?
此问题或类似问题有名称吗?我不知道要搜索什么。
例如,答案是7,它来自于每转数非零单元格的数量并将其相加。
00000
00100
01210
00100
00000
最初有5个非零单元。
00000
00000
00200
00000
00000
第一回合后,有1个非零单元格。
00000
00000
00100
00000
00000
第二回合后,有1个非零单元格。
00000
00000
00000
00000
00000
第三回合后,非零单元格为0。
更新:一条评论表明行进迅速。在此示例中是否可行,答案是10。
00000
00200
02220
00100
00000
最初有5个非零单元。
00000
00100
01210
00000
00000
第一回合后,有4个非零单元格。
00000
00000
00100
00000
00000
第二回合后,有1个非零单元格。
00000
00000
00000
00000
00000
第三回合后,非零单元格为0。