一颗炸弹炸全场?从《炸弹人(Bomb Enemy)》看算法里的“降维打击”
作者:Echo_Wish
如果你玩过经典游戏《炸弹人》,一定有过这样的爽感:
人物站在地图里。
敌人四处游荡。
你放下一颗炸弹。
“砰!”
横向一条线、纵向一条线全部清空。
几个敌人同时被带走。
那一瞬间特别解压。
但如果我告诉你,这个看似简单的小游戏场景,其实隐藏着一道经典算法面试题,而且里面蕴含着非常典型的空间换时间、状态复用、局部最优计算思想,你会不会觉得有点意思?
今天咱们就来聊聊 LeetCode 361 ——Bomb Enemy(炸弹人)。
这道题不算特别难。
但它非常适合训练一个程序员从“暴力思维”向“算法思维”转变。
而这种转变,往往比学会一个算法更重要。
题目描述
给定一个二维网格:
0 = 空地 E = 敌人 W = 墙炸弹只能放在空地:
0炸弹爆炸后:
- 向上
- 向下
- 向左
- 向右