返回第十五章 螺旋矩阵(2 / 2)编程之战首页

“唉呀!”,杨成一声惊呼,慌乱之中匆忙后跳,这厮身体素质还是不错的。

“嘭!”,两个铁拳狠狠地撞击在一起,发出沉闷的一响。

杨成拍拍胸脯,心有余悸地喘了喘气。

“这真是拿生命在开玩笑啊”,他不敢再试,只好原路返回,退回了1区。

端坐在冰冷的地面上,他开始思索解题方法。

刚才系统好像有提到关键的几个字“螺旋矩阵”,这是个嘛玩意儿呢?

这是一种算法或者说是矩阵中的行进策略。

杨成在迷宫中有上下左右四种行走方式,但只有依据“螺旋式”策略才有可能走到出口,它具体体现在:

先向右走,如果遇到边界,或者右边的区域已经走过,那么就向下走,否则继续向右走。

当向下走,如果遇到边界,或者下边的区域已经走过,那么就向左走,否则继续向下走。

当向左走,如果遇到边界,或者左边的区域已经走过,那么就向上走,否则继续向左走。

当向上走,如果遇到边界,或者上边的区域已经走过,那么就向右走,否则继续向上走。

依照这种策略,走过的区域依次是“1,2,3,6,9,8,7,4,5”,最后到达终点站,正中间的5区。

不过,这个问题并不局限在九宫格或者说33型矩阵,也有可能是44,55甚至是的矩阵。这就决定了不能硬编码,必须求出通用的解法。

“终于写完咯”,杨成敲完最后一行代码,擦了把汗。

“系统快告诉我,做的咋样?”

“叮!恭喜您完成了螺旋矩阵的任务”,系统兴奋地说道。

“当前积分35分,击败了全球21的玩家,请您再接再厉!”

“告诉俺,下一站去哪里?”

“去非洲!”,系统肯定地说道。